处理输入文本更改事件

ily*_*oli 5 jquery jquery-ui jquery-plugins

我正在编写一个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);
Run Code Online (Sandbox Code Playgroud)

到目前为止,很好用..

现在,我想做的,并且不知道如何,如果隐藏的输入值改变,则使div文本改变.
意思是,如果我做$('#editable').val('new text')div应改变..

我无法手动触发更改事件,因为输入更改将发生在我无法控制的其他插件中.

Bal*_*an웃 3

看看这个,在您的插件中,您可以像这样扩展 val 函数,以便在使用 val 函数更改值时触发更改事件。

如何扩展val方法,使得调用val时触发change事件?