<input type="button" onclick="executes second" />
$('input').click(function() { //this first }}
p.s.的onclick = 「執行第二」 - 不能被刪除(其__doPostBack)如何綁定jquery事件在標記執行事件之前
<input type="button" onclick="executes second" />
$('input').click(function() { //this first }}
p.s.的onclick = 「執行第二」 - 不能被刪除(其__doPostBack)如何綁定jquery事件在標記執行事件之前
我的猜測是內聯,因爲它已經由ASP.NET被輸出onclick處理程序無法刪除。爲了解決這個問題,你需要重寫ASP.NET的doPostBack方法,在回發發生之前注入你的函數。嘗試,包括在你的頁面下面的函數的地方,然後用它來添加事件處理程序:
更新:只是重新閱讀,實現這個答案稍差的標誌 - 它基本上可以讓你火回發之前事件,但不一定附加到按鈕的onclick處理程序。
var addToPostBack = function(func) {
var old__doPostBack = __doPostBack;
if (typeof __doPostBack != 'function') {
__doPostBack = func;
} else {
__doPostBack = function() {
func();
old__doPostBack.apply(this, arguments);
}
}
};
...
<input type="button" id="btn" onclick="..." />
...
addToPostBack(function() { alert("You're posting back!"); });
如果您使用jQuery的是沒有必要把的onclick到HTML:
$('input').click(function() {
//this first
something();
// this last
playSound();
});
編輯:
只是刪除的onclick使用jQuery屬性:
$('input').removeAttr("onclick");
,你可以把它裏面的文件準備好,或者只是將其連接到您的通話
$('input').removeAttr("onclick").click(function() {...});
我不會把它放在...它是doPostBack !!!!! – 2009-10-12 09:54:34
這將停止可能不需要的回發燒制。 – 2009-10-12 10:57:41
@Luke這個想法是用jQuery來替代它。 – googletorp 2009-10-12 11:24:34
你不能只是這樣做:
< input type="button" onclick="do_something();" />
function do_something() {
// this first
// then second?
}}
這並不理想,如果do_sometihng()最初是在其他地方定義的,並且不容易複製等。 – googletorp 2009-10-12 11:29:30
試...
$(document).ready(function(){
$("input").removeAttr("onclick");
$("input").click(function(){
// do first
my_first_function();
// do second
my_second_function();
return false;
});
});
你爲什麼要兩個click事件添加到同一按鈕? – rahul 2009-10-12 09:50:22
onclick =「執行第二次」 - 這裏是doPostBack – 2009-10-12 09:52:14
我想很多人通過提供簡單的答案來回答你的問題,因爲你的主要問題在問題中不太清楚。我建議你編輯一下這個問題,以明確從Asp.net doPostBack函數添加onClick事件。 – 2009-10-12 11:30:16