JQuery 里面的 click 事件会累加

最近用 JQuery 做个信息系统,里面有个删除功能,我用了 BlockUI 来做删除确认。点 Yes 之后就真正的删除。原来是这么写的:

$( ' #yes ' ).click( function ()  {
        $.unblockUI();
        del(link, id);

    }
); 


如果页面不刷新,一直使用 .click 绑定到同一个对象,那么这些 click 事件就会累加。所以上面那个代码执行后,不断的点“删除”功能,就会不断的把 click 绑定到 yes 按钮上。第三次点时,相当于这一次将会执行三次del();,这就不是我想要的了。

所以绑定前先把原来的 click 解绑,再绑定新动作。

$( ' #yes ' ).unbind( ' click ' );
$( ' #yes ' ).click( function ()  {
        $.unblockUI();
        del(link, id);

    }
); 

或者在click里面定义,执行完之后解绑。

$( ' #yes ' ).click( function ()  {
        $.unblockUI();
        del(link, id);
        $(
'#yes').unbind('click');
    }
);

你可能感兴趣的:(jquery,function)