javascript - 即使选择器被删除,Jquery 点击功能仍然有效

标签 javascript jquery

我尝试通过删除用于触发 JavaScript 中行为的选择器来暂时禁用某个函数。即使选择器 (.next) 被删除,该函数仍然可以工作。

beta.art89.se 是网页。单击一个项目,然后单击右下角指向右侧的箭头以激活。

代码:

$.showElement = function( index ) {
    last_prev_object = $('#pagination .prev').clone(true);
    last_next_object = $('#pagination .next').clone(true);

    var project_html = $.parseElement(index);

    if(project_html != '') {
        $(".content-bg").html(project_html);

        $('#pagination .prev').unbind('click');
        $('#pagination .prev').bind('click', function(e) {
            e.preventDefault();
            $('#pagination .prev').removeClass('prev');
            $(".content-bg")
                .addClass('temp_content')
                .removeClass('current_content')
                .before($('<div class="content-bg current_content"></div>').html($.parseElement(current_index-1)))
                .animate({'left': '+=640px'}, 600);
            $(".content-bg.current_content")
                .css('top', '0px')
                .css('left', (parseInt($(".content-bg.temp_content").css('left'))-640)+'px')
                .animate({'left': '+=640px'}, 600, function(){$(".content-bg.temp_content").remove()});
        });

        $('#pagination .next').unbind('click');
        $('#pagination .next').bind('click', function(e) {
            e.preventDefault();
            $('#pagination .next').removeClass('next');

            $(".content-bg")
                .addClass('temp_content')
                .removeClass('current_content')
                .after($('<div class="content-bg current_content"></div>').html($.parseElement(current_index+1)))
                .animate({'left': '-=640px'}, 600);
            $(".content-bg.current_content")
                .css('top', '0px')
                .css('left', (parseInt($(".content-bg.temp_content").css('left'))+640)+'px')
                .animate({'left': '-=640px'}, 600, function(){$(".content-bg.temp_content").remove()}); 
        });
        $(".width-wrap").animate({'top': '-=275px'}, 600); 
        $(".content-bg").css('left', (640*position)+'px').animate({'top': '0px'}, 600);
    }
}

最佳答案

当您绑定(bind)事件处理程序时,它会在您调用 .bind 时绑定(bind)到元素集。不使用选择器,因此当您更改其中一个元素使其不再与选择器匹配时,这不会反射(reflect)在自动添加/删除的处理程序中。

您可能需要.live相反,它使用选择器,并在事件触发时自动将事件处理程序绑定(bind)到选择器匹配的元素。

关于javascript - 即使选择器被删除,Jquery 点击功能仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944096/

相关文章:

javascript - 带有图标的 Google Chart API 行显示 Javascript 错误 : undefined is not a function

jquery - 如何使用JQuery识别CSS 'text-decoration'

jquery - 所选文本的宽度 - jquery

jquery - CSS 不透明度 0.2 - jquery 设置不透明度 1.0 - 但是 1.0 最大为 0.2?

jquery - 父对象的链接点击功能重定向到href

javascript - D3.js:数据已经绑定(bind)时如何追加元素?

javascript - 三.JS : Rotate everyting (including camera) despite the orbit controller

javascript - Jquery slideToggle 不能与 display none css 一起工作

javascript - "anonymous"周的开放时间/全日历

javascript - 我正在使用 HTML、CSS 和 Javascript 创建一个计算器。我被困在平方根函数