jQuery:防止事件被连接多次?

时间:2010-06-02 17:15:25

标签: jquery

基本上,我有一个元素FOO,我想在点击时将点击事件附加到一组完全独立的元素BAR,这样当它们被点击时它们可以恢复{{1}到之前的内容。我只希望这个活动附上一次。

点击FOO后,其内容会在FOO中缓存,并在$back_up集上添加触发器,以便点击后可以还原BAR到以前的状态。有一个聪明的方法来做到这一点?如果事件尚不存在,只喜欢FOO

.bind()

目前,我认为最好的方法是附加一个类,并选择该类不存在的位置。

2 个答案:

答案 0 :(得分:0)

除非我误解,否则我认为您正在寻找绑定事件的one函数。它就像bind,除了在第一次调用后删除处理程序。

或者,您可以在.data中存储一个标记,并在您的点击处理程序中查找。

答案 1 :(得分:0)

您可以使用unbind从元素中取消绑定给定事件的处理程序。

$(this).closest('.page').find('.warranties .check:not(.noprint)').unbind("click");
$(this).closest('.page').find('.warranties .check:not(.noprint)').click(function() ...

http://docs.jquery.com/Events/unbind