これがすでに投稿されている場合は申し訳ありませんが、私はそれらの多くを見て、解決策を得るためにそれらを使用しようとしましたが、どれも私のために働いていません.
これが私が正しいと思った方法です(私が行っていた他のコーディングなしで)。がF1
トリガーされると、クリックを無効にする必要があります。IF2
がトリガーされたら、有効にする必要があります。
1.
$('.head2, .head3').click(function(event) {
var object = $(this).siblings('.head4');
if (something) F1();
if (somethingelse)) F2();
function F1() {
object.siblings('.head3').children('.primary').off('click');
}
function F2() {
object.siblings('.head3').children('.primary').on('click');
}
});
問題: クリック イベント リスナーがオフになりません。
2.
$('.head2 li, .head3 li').click(function(event) {
var object = $(this).parent().siblings('.head4');
if (something) F1();
if (somethingelse)) F2();
function F1() {
object.siblings('.head3').children('.primary').off('click');
}
function F2() {
object.siblings('.head3').children('.primary').on('click');
}
});
問題:.primary
クリック イベント リスナーが再割り当てされない
3.
func = $('.head2 li, .head3 li').click(function(event) {
var object = $(this).parent().siblings('.head4');
if (something) F1();
if (somethingelse)) F2();
function F1() {
object.siblings('.head3').children('.primary').off('click');
}
function F2() {
object.siblings('.head3').children('.primary').on('click', func);
}
});
問題:ERROR: Uncaught TypeError: Object [object Object] has no method 'apply'
私がやっていることをより明確にするためにli
、イベントハンドラーがアタッチされている一連の をオフにしようとしています。
例:
<ul class="head">
<li class="sub1"></div>
<li class="sub2"></div>
<li class="sub3"></div>
</div>
のいずれかをクリックするとli
、何かが発生し、.sub1
クリック イベント ハンドラが削除されます。その後、li
再度 EXCEPTのいずれかをクリックするとsub1
、アクションが逆にsub1
なり、再びクリック可能になります。