[英]Why is addClass and removeClass breaking my jQuery?
$('.selected').removeClass('selected');
$(this).addClass('selected');
在添加上面两行代码之前,整个功能都有效。 现在只有这两行在我点击时工作,其余的代码没有。 如果我删除这两行,代码再次起作用。 什么可以删除一个类并添加一个类可能会毁掉这个函数的其余部分? 我在这做错了什么?
$(document).ready(function(){
var subject;
$('.subject').mouseenter(function(){
if ( $(this).hasClass(subject) ) {
return 0;
}
else {
$(this).find('.info, img').fadeTo('fast', 1);
}
});
$('.subject').mouseleave(function(){
if ( $(this).hasClass(subject) ) {
return 0;
}
else {
$(this).find('.info').fadeTo('fast', 0);
$(this).find('img').fadeTo('fast', 0.8);
}
});
// BELOW IS WHERE THE PROBLEM IS
$('[class$=-link]').click(function(){
$('.selected').removeClass('selected'); // Why do these lines break the
$(this).addClass('selected'); // rest of this function?
$('.' + subject).find('.info').fadeTo('fast', 0);
$('.' + subject).find('img').fadeTo('fast', 0.8);
subject = $(this).attr('class').replace("-link","");
$('.'+ subject ).find('.info, img').fadeTo('fast', 1);
});
});
据我所知,你想要这样的东西(避免更改HTML):
$('[class$=-link]').click(function(){
$('.selected').removeClass('selected');
$('.' + subject).find('.info').fadeTo('fast', 0).end().find('img').fadeTo('fast', 0.8);
subject = $(this).attr('class').replace("-link","");//execute this line while "selected" class is not present
$('.'+ subject).find('.info, img').fadeTo('fast', 1);
$(this).addClass('selected');//add after everything else is complete
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.