2010-06-02 51 views
1

我想一個值添加到onchange事件,但JS代碼有錯誤jQuery的ATTR命令

$(args).attr('onChange', 'setTimeout('__doPostBack(\'ctl00$cpBody$txtDate\',\'\')', 0)'); 

任何人看到錯誤?

回答

2

如何正確的jQuery的/最好的Javascript的方式:

$(args).bind('change', function() { 
    setTimeout(function() { 
     __doPostBack('ctl00$cpBody$txtDate',''); 
    }, 0); 
}); 

儘管爲什麼0毫秒超時時間?

您可以更改您的代碼:

$(args).bind('change', function() { 
    __doPostBack('ctl00$cpBody$txtDate',''); 
}); 

由於只有最微小的功能上的差異(__doPostBack將立即代替執行ASAP)。

最好提供一個函數作爲setTimeout的第一個參數,而不是一個字符串。 setTimeouteval密切相關,並且eval不好。

1

試試這個:

$(args).bind('Change','setTimeout(' 
      __doPostBack(\'ctl00$cpBody$txtDate\',\'\')', 0)'); 
+0

onChange =更改 – jAndy 2010-06-02 11:40:07

1
$(args).bind('change', function(e){ 
    setTimeout(function(){ 
     __doPostBack('ctl00$cpBody$txtDate',''); 
    }, 0); 
}); 

應該適合更好一點。