在动态加载按钮的onclick动作之前执行操作

时间:2016-05-20 10:50:35

标签: javascript jquery html onclick

我目前有一个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属性。

3 个答案:

答案 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