此委托事件触发两次(有时不总是)。
client.bindButtonClickFunction = function(){
$("#client-plugin").delegate(".client-button", "click", function()
{
var id = this.id.split('-')[2];
client.retrieveMessageByID(id);
});
};
插入所有“.client-button”之后我调用该函数。
有关如何阻止它的任何想法?我尝试了event.stopPropagation(),并且还没有授权和重新委托无效。
这是在Chrome中,作为Chrome插件的一部分。
答案 0 :(得分:21)
根据您注册委托的方式,您可能希望这样做:
$("#client-plugin").undelegate('event').delegate('event', ...)
另外,尝试从处理程序中添加return false
。
答案 1 :(得分:9)
您需要停止即时传播
$("#client-plugin").on(".client-button", "click", function (e) {
e.stopImmediatePropagation();
var id = this.id.split('-')[2];
client.retrieveMessageByID(id);
});