应用后关闭()事件

时间:2016-02-29 15:04:21

标签: javascript jquery

如何在应用事件on('click')后重新启用off()事件?

$('#btn-aluno').on('click', function() {
    $('.new-step-email-aluno').toggle();
    $('#btn-familiar').off();
});
$('#btn-familiar').on('click', function() {
    $('.new-step-email-familiar').toggle();
    $('#btn-aluno').off();
});

new-step-email-familiarnew-step-email-aluno = <input>

btn-alunobtn-familiar = <span>(用作按钮)

enter image description here

1 个答案:

答案 0 :(得分:3)

使用event delegation

可以做同样的事情,而不是关闭事件监听器
$(document).on('click',"#btn-aluno.active", function() {
    $('.new-step-email-aluno').toggle();
    $('#btn-familiar').removeClass("active");
});

$(document).on('click',"#btn-familiar.active", function() {
    $('.new-step-email-familiar').toggle();
    $('#btn-aluno').removeClass("active");
});

每当您想激活事件监听器时,只需将类active添加到相关元素即可。同样在document的位置尝试使用要绑定事件的元素的任何最接近的静态父级。

根据您的要求,您可以编辑您的逻辑,如下所示

$(document).on('click',"#btn-aluno.active", function() {
    $('.new-step-email-aluno').toggle();
    $('#btn-familiar').toggleClass("active");
});

$(document).on('click',"#btn-familiar.active", function() {
    $('.new-step-email-familiar').toggle();
    $('#btn-aluno').toggleClass("active");
});

DEMO