我想暂时禁用与 jstree 和 Backbone.View.delegateEvents() 绑定的 JQuery 元素上的单击事件。
以下是我的处理方式
在禁用事件之前,我使用将事件记录在局部变量中
self.defaultClick = $(this).data('events').click[0];
之后,我使用禁用点击事件
$(this).click(false);
现在我需要再次绑定,我将它分配回元素使用
$(this).data('events').click = self.defaultClick;
效果很好,直到第二次。
我从 JQuery.event.add 'Object # has no method 'push'' 在这一行得到这个错误
handlers.push( handleObj );
问题是“处理程序”在第二次分配后成为事件本身,而在第一次分配时它是一个数组。
任何想法,我该如何解决?通过在确定事件已经绑定后避免重新分配事件,或者可能正在使用其他方式分配事件?
感谢您的帮助。
编辑
我在这个应用程序上使用 jstree。我在 css 类上绑定了特定事件,但是,关于应用程序的状态,我需要能够禁用所有树(包括之前绑定的类)。