我正在寫一個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);
到目前爲止,this works不錯..
現在,我想做的事,而且不知道如何,是使格文本變化如果隱藏輸入值改變。
手段,如果我做$('#editable').val('new text')
股利應改變..
我不能觸發變化事件手動,因爲輸入的變化將是我無法控制其它插件內發生..
你能你如何指望擴大'$( '#可編輯')。VAL()'工作?爲什麼'val()'而不是'html()'?哪些元素可以編輯? – 2012-06-15 14:59:16
@palintropos更新了我的jsFiddle – skafandri
另外,你看過'contenteEditable'嗎?我相信它是非常全面的支持 – 2012-06-15 15:14:34