我正在编写一个 jQuery 插件来模拟可编辑的 div。
这是我的代码:
(function($){
$.fn.editable = function(){
return this.each(function(){
var $this = $(this).hide();
var div = $('<div>'+$this.val()+'</div>').show().insertAfter($this).data('input',$this);
$this.data('div',div);
div.dblclick(function(){
$(this).hide();
$(this).data('input').val($(this).text()).show();
});
$this.blur(function(){
$(this).hide();
$(this).data('div').html($(this).val()).show();
});
$this.change(function(){
$(this).data('div').html($(this).val());
});
});
};
})(jQuery);
到目前为止,这工作得很好..
现在,我想要做的,但不知道如何,如果隐藏的输入值发生变化,则使 div 文本发生变化。
意味着,如果我这样做$('#editable').val('new text')
div 应该改变..
我无法手动触发更改事件,因为输入更改将发生在我无法控制的其他插件中。