委派事件两次发射

时间:2011-07-29 23:32:48

标签: jquery delegates

此委托事件触发两次(有时不总是)。

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插件的一部分。

2 个答案:

答案 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);
});