如何将额外参数传递给事件处理回调?

时间:2016-06-09 11:51:52

标签: javascript dom

我有一个按钮,我想在其上附加一个事件监听器。我还需要将额外的参数url传递给此函数。我读到了apply,我正在做以下事情:

$('#list-button').on('click',postListing.apply([url]));

我的问题是,只要加载此脚本,就会调用postListing。我没有在其他任何地方调用该函数。我只需要点击即可调用它。

2 个答案:

答案 0 :(得分:3)

bind和call / apply之间的区别在于bind不会立即调用函数,就像它在需要时使用变量加载数据一样

您可以重新格式化代码,使其看起来像这样

$('#list-button').on('click', postListing.bind(this, url));

答案 1 :(得分:0)

找到了办法。可以使用闭包来完成:

var postListing = function(event, url){
        return function(){
               //Main functionality wrapped here
        };
};

事件监听器设置保持不变:

$('#list-button').on('click',postListing.apply([url]));