<input type="button" onclick="executes second" />
$('input').click(function() { //this first }}
P.S。 onclick =“执行第二个” - 无法删除(其__doPostBack)
答案 0 :(得分:4)
试试......
$(document).ready(function(){
$("input").removeAttr("onclick");
$("input").click(function(){
// do first
my_first_function();
// do second
my_second_function();
return false;
});
});
答案 1 :(得分:2)
难道你不能做这样的事情:
< input type="button" onclick="do_something();" />
function do_something() {
// this first
// then second?
}}
答案 2 :(得分:0)
如果你使用jQuery,则不需要点击HTML:
$('input').click(function() {
//this first
something();
// this last
playSound();
});
修改强>
只需使用jQuery删除onclick属性:
$('input').removeAttr("onclick");
您可以将其放入文档准备就绪或只是将其附加到您的电话
$('input').removeAttr("onclick").click(function() {...});
答案 3 :(得分:0)
我的猜测是内联的onclick处理程序无法删除,因为它已由ASP.NET输出。要解决此问题,您需要覆盖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!"); });