2011-08-21 68 views

回答

0

您可以手动触发事件:

input.change(function(){ 
    alert("change"); 
}); 

input.val('text string insert'); 
input.change(); 
+0

它喜欢调用任何其他功能吗?做val()和foo()..是所有的问题? – Baz1nga

+0

@zzz不是真的,'change()'是保留的函数名称,在幕后它调用附加到元素的onchange事件的事件处理函数。在没有任何参数的情况下调用这个函数时,意味着触发事件,当用函数调用时意味着“将此函数添加为处理程序”。 –

0

这WIL l临时覆盖内部的prototype.val方法,并在最后用触发器重新定义它。

(function() { 
    var ev = new $.Event('val'), 
     orig = $.fn.val; 
    $.fn.val= function() { 
     orig.apply(this, arguments); 
     $(this).trigger(ev); 
    } 
})(); 

$("#123").bind('val', function(e) { 
    alert("hi"); 
}); 

测试者:$(“#123”)。val(“test”);

在这里测试:http://jsfiddle.net/9mWne/