Javascript 为什么addClass和removeClass破坏了我的jQuery?
在添加上面的两行代码之前,整个函数工作正常。现在,当我单击时,只有这两行可以工作,而我的其余代码不能工作。如果删除这两行代码,代码将再次工作。删除一个类和添加一个类可能会破坏这个函数的其余部分吗?我做错了什么Javascript 为什么addClass和removeClass破坏了我的jQuery?,javascript,jquery,addclass,removeclass,Javascript,Jquery,Addclass,Removeclass,在添加上面的两行代码之前,整个函数工作正常。现在,当我单击时,只有这两行可以工作,而我的其余代码不能工作。如果删除这两行代码,代码将再次工作。删除一个类和添加一个类可能会破坏这个函数的其余部分吗?我做错了什么 $('.selected').removeClass('selected'); $(this).addClass('selected'); 据我所知,您需要这样的内容(避免更改HTML): 哪一条线打破了它?你知道在这种情况下,$(这个)是什么吗?啊哈!似乎是$(this.addClas
$('.selected').removeClass('selected');
$(this).addClass('selected');
据我所知,您需要这样的内容(避免更改HTML):
哪一条线打破了它?你知道在这种情况下,$(这个)是什么吗?啊哈!似乎是
$(this.addClass('selected')代码>是破坏代码的东西。这与这个有关吗?@Syon mouseenter和mouseleave都绑定到。subject
删除和添加的类都是。已选择。那怎么能打破呢?我宁愿说选择器中的this
确实存在问题@布雷特:什么是由[class$=-link]
选择器选择的?我很困惑,因为addClass是fpr类链接,mouseenter和mouseleave是指向一个完全不同的类的东西:你能发布至少显示可点击链接的(部分)html吗?
$(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);
});
});
$('[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
});