jstree と Backbone.View.delegateEvents() にバインドされた JQuery 要素のクリック イベントを一時的に無効にしたいと考えています。
以下は、私が行う処理方法です
イベントを無効にする前に、次を使用してイベントをローカル変数に記録します
self.defaultClick = $(this).data('events').click[0];
その後、使用してクリックイベントを無効にします
$(this).click(false);
再びバインドする必要があるので、次を使用して要素に割り当てます。
$(this).data('events').click = self.defaultClick;
2回目まではうまくいきます。
JQuery.event.add 'Object # has no method 'push'' at this line からこのエラーが発生します
handlers.push( handleObj );
問題は、最初の割り当てでは配列であるのに対し、2 回目の割り当ての後に「handlers」がイベント自体になることです。
どうすれば回避できますか?イベントが既にバインドされていることを確認した後にイベントを再割り当てしないようにするか、別の方法でイベントを割り当てることができますか?
ご協力ありがとうございました。
編集
このアプリケーションでは jstree を使用しています。css クラスに特定のイベントをバインドしましたが、アプリケーションの状態に関しては、すべてのツリー (以前にバインドされたクラスを含む) を無効にできる必要があります。