我的代码只运行一次。 当我单击按钮时,代码执行正常。但是当我执行完>后执行相同的时,它不起作用,我甚至没有得到警报('点击')。
任何人都知道为什么? 这是代码:
$('#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;
});
答案 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( '项目');