如何将多个onclick函数绑定到特定节点?

时间:2014-03-20 10:09:01

标签: javascript binding onclick

当点击HTML节点时,在我的页面上,我希望发生一些事情。

我还想要发生其他事情。

然后我决定,我想要进一步发生一些事情。换句话说,我想继续将其约束到新的行动。但是我没有将其硬编码到原始onclick函数中,而是想创建一个函数来执行此操作。

换句话说,我想要这样的事情:

function addClickBinding(node, functionToPerform){
     node.onclick = function(e){
           //some stuff
           functionToPerform(stuff in here)
     }

我发现的问题是,如果我用同一个节点调用它,那么之前的onclick就会被越过。

如何继续向同一节点添加新的onclick属性?

注意:我不想使用JQuery

2 个答案:

答案 0 :(得分:0)

您可以使用element.addEventListener('click', function(e) { }, false);。阅读它here。否则,您可以使用函数包装要调用的函数,并使其等于.onclick

答案 1 :(得分:-1)

如果您只是想让它同时运行多个函数,那么您可以只使用一个函数来执行此操作:

function clickControl()
{
    doThis();
    doThat();
    etc();
}

假设这不是问题,并且你想在某些条件下发生某些事情,那么你只需要将它们放在那里:

function clickControl()
{
    if(something)
    {
         doThis();
    }else if(something_else)
    {
        doThat();
    }else
    {
        etc();
    }
}

最后,如果你想每次都发生不同的事情,设置一个全局变量:

var clickStep = 1;

function clickControl()
{
    switch(clickStep++)
    {
        case 1:
            doThis();
            break;
        case 2:
            doThat();
            break;
        case 3:
            etc();
            break;
    }
}

我希望我在这里回答你的问题。我没有整夜睡觉,所以如果我对这件事不感兴趣,那么我道歉。