0
$('.selected').removeClass('selected');
$(this).addClass('selected');
在添加上面兩行代碼之前,整個函數都起作用了。現在,只有這兩行工作,當我點擊和我的代碼的其餘部分沒有。如果我刪除這兩行,代碼再次工作。什麼可以刪除一個類並添加一個類可能會毀了這個函數的其餘部分?我在這裏做錯了什麼?爲什麼addClass和removeClass打破了我的jQuery?
$(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);
});
});
哪個確切換行嗎?你知道這個背景下的$(this)嗎? – lifetimes 2013-03-26 12:42:45
啊哈!看起來'$(this).addClass('selected');'是什麼打破了代碼。這與'this'有關嗎? – 2013-03-26 12:44:34
@Syon mouseenter和mouseleave綁定到'.subject'類,刪除並添加'.selected'。這怎麼能打破?我寧願說選擇器中的'this'確實存在問題。 @Brett:什麼是由'[class $ = - link]'選擇器選擇的? – 2013-03-26 12:47:04