Как вызвать событие клика jquery только при первом клике

У меня есть два div (.basic1 и .basic2). Я хочу, чтобы .basic1 исчезал при клике, а .basic2 исчезал, и я прекрасно работал. Единственная проблема заключается в том, что после того, как .basic2 исчезнет, если пользователь продолжит нажимать на ссылку (.navbar1), он будет исчезать в этом div снова и снова. Я знаю, что мне нужно использовать функцию .bind (), но я не могу понять, где в моем коде ее разместить. Спасибо!

$(document).ready(function() {
    $('.navbar1').click(function(e){
        e.preventDefault();

        $('.basic2').hide().load('.basic2', function() {
            $(this).delay(600).fadeIn(1000);
            $('.basic1').fadeOut(1000);
        });
    });
});

Ответы на вопрос(4)

JQuery предоставляет.один() Метод для этого точно.

$(document).ready(function() {
    $('.navbar1').one('click', function(e){
        e.preventDefault();
        $('.basic2').hide() 
        .load('.basic2', function() {
            $(this).delay(600).fadeIn(1000);
            $('.basic1').fadeOut(1000);
        });
    });
});

Пожалуйста, смотрите JQueryone() для одноразовых обработчиков событий. то есть

$(document).ready(function() {
    $('.navbar1').one('click', function(e){
        e.preventDefault();

        $('.basic2').hide().load('.basic2', function() {
            $(this).delay(600).fadeIn(1000);
            $('.basic1').fadeOut(1000);
        });
    });
});
Используйте современные события Js, с «один раз»!
const navbar = document.getElementsByClassName("navbar1")[0];
navbar.addEventListener("click", function() {
    // Add one-time callback
}, {once : true});

Документация, Могу ли я использовать

 Leo Caseiro28 февр. 2018 г., 02:33
Если вам нужно поддерживать IE11, используйте events-polyfill fromgithub.com/lifaon74/events-polyfill

использование.one():

$('.navbar1').one('click', function(e) {

Это развязываетclick событие, как только вы запустите его.

Если вы не хотите, чтобы элемент дважды щелкнул, должно сработать что-то вроде этого:

$(document).on('click', '.navbar1:not(.clicked)', function() {
    // ...
});

Делать.navbar1 unclickable, просто беги$('.navbar1').addClass('clicked'), Чтобы сделать его кликабельным, сделайте обратное.

 Blender14 окт. 2012 г., 21:24
@jcesar: Спасибо, я добавил это.
 Ohgodwhy14 окт. 2012 г., 21:23
Бах, уничтожил мое время отклика. +1.
 Blender14 окт. 2012 г., 21:38
@ user1745398: Я не совсем уверен, что вы имеете в виду, но посмотрите мои изменения.
 user174539814 окт. 2012 г., 21:34
Что если я хочу, чтобы функция щелчка срабатывала, только если вы не нажали только на .navbar1? Это возможно?
 jcesarmobile14 окт. 2012 г., 21:24
Я тоже писал. Просто добавьте одну документацию.api.jquery.com/one

Ваш ответ на вопрос