2011-08-21 64 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/