tao-test/app/taoQtiItem/views/js/qtiCreator/editor/simpleContentEditableElement.js

48 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-08-29 20:14:13 +02:00
define(['jquery', 'lodash'], function($, _){
"use strict";
function create($container, selector, callback){
function _init($elt){
$elt.attr('contenteditable', true).addClass('simple-editable');
}
_init($container.find(selector));
$container.on('mouseenter.simpleeditable', selector, _.throttle(function(){
var $elt = $(this);
if(!$elt.attr('contenteditable')){
//incase the element does not exists on init()
_init($elt);
}
}, 200)).on('keyup.simpleeditable', selector, _.throttle(function(e){
callback($(this).text());
}, 200)).on('keydown.simpleeditable', selector, function(e){
if(e.which === 13){
e.preventDefault();
$(this).blur();
}
});
}
function destroy($container){
$container.find('.simple-editable')
.removeClass('simple-editable')
.removeAttr('contenteditable');
$container.off('.simpleeditable');
}
return {
create : create,
destroy : destroy
};
});