我目前有一个div,在某个时候动态加载一个按钮: 最初它看起来像这样:
<div id="id"></div>
虽然在某些时候它变成
<div id="id">
<button type="button" onclick="function1();"></button>
</div>
现在,我希望在调用 function1
之前执行onclick 操作。为了将onclick动作绑定到动态加载的按钮,我通常会按照
$("#id").on('click', 'button', function() {
function2();
});
但是,我怀疑由于按钮是动态加载的,因此按钮上定义的onclick会覆盖此单击处理程序,并且仅调用function1
。如何确保在此动态加载的按钮上,function2
也会执行onclick?请假设我无法更改动态加载的onclick属性。
答案 0 :(得分:4)
现在,我想在调用function1之前执行onclick操作。
而不是单击,使用mousedown
事件,因为它将在click
事件之前调用(因为在mouseup之后调用click事件)
$("#id").on('mousedown', 'button', function() {
function2();
});
或尝试(根据以下评论中的讨论)
$("#id").on('mouseup', 'button', function() {
function2();
});
答案 1 :(得分:0)
跟进gurvinder372's answer,我通过挂钩鼠标事件解决了这个问题(而不是按照他的建议进行了mousedown)
$("#id").on('mouseup', 'button', function() {
function2();
});
答案 2 :(得分:0)
我认为你需要做这样的事情:
$("#id").on('click', 'button', function() {
return func2();
});
function func2()
{
alert("function2 is alert")
}
这将覆盖function1