我有一个按钮,我想在其上附加一个事件监听器。我还需要将额外的参数url传递给此函数。我读到了apply
,我正在做以下事情:
$('#list-button').on('click',postListing.apply([url]));
我的问题是,只要加载此脚本,就会调用postListing
。我没有在其他任何地方调用该函数。我只需要点击即可调用它。
答案 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]));