編集可能なdivをシミュレートするjQueryプラグインを作成しています。
これが私のコードです:
(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は変更する必要があります。
入力の変更は、私が制御していない他のプラグイン内で発生するため、変更イベントを手動でトリガーすることはできません。