使用jQuery添加多个单击事件

时间:2012-04-02 04:36:05

标签: jquery events click

所以我有一个奇怪的问题。我有一个<a/>标记,我正在使用点击事件来使用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 :(得分:0)

为什么不使用明确包含ID标记<a>的选择器。像

这样的东西
$('#next-arrow').bind('click', function (e){
    .
    .
    .
});

或者如果问题相同,请在绑定之前使用<a>.unbind('click')标记取消绑定点击事件。

答案 1 :(得分:0)

开始注意:我是在这里添加此答案,还是仅在评论中提及?

所以我想出了问题所在。我正在附加加载器,然后使用类选择器淡入加载器,然后淡出加载器,但不从DOM中删除元素。

那么下次我调用该函数时,它会附加加载器,将两个加载器淡化,然后为每个加载器运行中间函数,依此类推......

所以,一旦我加载了所有东西,我就从DOM中删除了loader元素,所有人都很高兴。

感谢您的帮助......我在研究过程中确实学到了一两件关于jQuery的东西......