Несколько событий клика добавляются с помощью jQuery - PullRequest
0 голосов
/ 02 апреля 2012

Так что у меня странная проблема. У меня есть тег <a/>, к которому я применяю событие click для использования jQuery.on(). Здесь возникает проблема. Каждый раз, когда я нажимаю на тег <a/>, кажется, что он добавляет еще одно событие щелчка к тегу.

Итак, у меня есть тег вроде:

<a href="#" id="next-arrow" class="nav-arrows inactive"></a>

А вот и мой JS.

$('body').on('click', '#next-arrow', function(e) {
    if($(this).hasClass('active')) {
        $('body').addClass('loading-cursor');
        document.location.hash=step_names[current_step];
        $(this).removeClass('active').addClass('inactive');
        $('#tools').append(loader);
        $('#tools').find('.loader-outer').fadeIn('fast', function() {
                //Do some stuff here once the loader is faded in
        }); //End loader FadeIn()
    }   
    e.preventDefault();
});

Эта функция находится в пределах $(function() {});

Есть идеи, что может происходить? У меня есть куча кода JS для других элементов, которые не связаны. Однако, если у кого-то есть идея и он хочет, чтобы какой-то другой код был написан, сообщите мне.

Спасибо

PS. Я просто хотел бы добавить, что я пошел, чтобы сделать jsFiddle, чтобы попытаться повторить, но я не могу повторить это. Поэтому я понятия не имею, в чем проблема

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

Старт Примечание: Я добавлю этот ответ сюда или просто упомяну в комментарии?

Итак, я выяснил проблему.Я добавлял загрузчик, а затем исчезал в загрузчике с помощью селектора классов, затем исчезал загрузчик, но не удалял элемент из DOM.добавляем загрузчик, затем используем два загрузчика, а затем для каждого загрузчика, выполняем функцию middle и т. д.все снова счастливы.

Спасибо за помощь в любом случае ... Я узнал кое-что еще о jQuery во время моего исследования ...

0 голосов
/ 02 апреля 2012

Почему бы не использовать селектор, который явно выбирает ID тега <a>. Что-то вроде

$('#next-arrow').bind('click', function (e){
    .
    .
    .
});

или, если проблема та же, просто отсоедините событие click от тега <a>, используя .unbind('click'), прежде чем связывать его.

...