抱歉,如果这已经发布了,但我已经看到了很多,并试图使用它们来获得解决方案,但它们都没有为我工作。
以下是我认为正确的方式(没有我正在做的其他编码)。触发时F1
,应禁用单击。当我F2
被触发时,它应该被启用:
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');
}
});
ISSUE: 点击事件监听器没有关闭。
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');
}
});
ISSUE:.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
附加了事件处理程序的 s 而不关闭其他的,仅当它被切换时。
例子:
<ul class="head">
<li class="sub1"></div>
<li class="sub2"></div>
<li class="sub3"></div>
</div>
当您单击任何 时li
,会发生一些事情,然后.sub1
删除其单击事件处理程序。然后,当您li
再次单击任何一个 EXCEPTsub1
时,操作将反转并sub1
再次变为可单击。