Jquery单击只执行一次

时间:2015-02-25 13:05:54

标签: jquery click

我的代码只运行一次。 当我单击按钮时,代码执行正常。但是当我执行完后执行相同的时,它不起作用,我甚至没有得到警报('点击')。

任何人都知道为什么? 这是代码:

$('#eucontentpage #country-choice .item .lang-ico').click(function(){
    alert('clicked');
    $(this).parent().removeClass('item');
    var country = $(this).parent().attr("class");
    var language = $(this).html();
    var pathArray = window.location.pathname.split( '/' );
    var newPathname = "";
    for (i = 0; i < 5; i++) {
      newPathname += pathArray[i];
      newPathname += "/";
    }
    var loadlink = newPathname + country + "/index_"+ language +".htm #nationalcontentpage";

    $.when(
        $('.lightbox').after('<div id="insertnationalcontent"></div>')
    ).done(function() {
        $("#insertnationalcontent").load(loadlink),
        $('#jb-window').hide(),
        $('#jb-window-content').hide(),
        $('#jb-overlay').hide(),
        $(this).parent().addClass('item'),
        $('#insertnationalcontent').fadeIn('slow'),
        $.history.load( '' )
    });

    return false;
});

3 个答案:

答案 0 :(得分:1)

试试这样:

$('#eucontentpage #country-choice').on("click",".item .lang-ico",function(){ // this first part is different
    alert('clicked');
    $(this).parent().removeClass('item');
    var country = $(this).parent().attr("class");
    var language = $(this).html();
    var pathArray = window.location.pathname.split( '/' );
    var newPathname = "";
    for (i = 0; i < 5; i++) {
      newPathname += pathArray[i];
      newPathname += "/";
    }
    var loadlink = newPathname + country + "/index_"+ language +".htm #nationalcontentpage";

    $.when(
        $('.lightbox').after('<div id="insertnationalcontent"></div>')
    ).done(function() {
        $("#insertnationalcontent").load(loadlink),
        $('#jb-window').hide(),
        $('#jb-window-content').hide(),
        $('#jb-overlay').hide(),
        $(this).parent().addClass('item'),
        $('#insertnationalcontent').fadeIn('slow'),
        $.history.load( '' )
    });

    return false;
});

答案 1 :(得分:0)

您正在从父对象中删除“item”类。在对象引用“#eucontentpage#country-choice .item .lang-ico”中使用它时。

删除项目类后,您的参赛项目不再匹配。

尝试使用

$('.lang-ico').click(function(){...}

答案 2 :(得分:0)

你正在做$(this).parent()。removeClass('item'); 因此,当此代码执行时,它会删除项目类,这就是DOM选择器不匹配的原因。

只需在下面注释您的代码将多次执行。 $(本).parent()removeClass( '项目');