在我正在处理的页面中,jquery的addClass()
和removeClass()
只能偶尔使用。
退房: http://retype.se/temp/scrolltest/test.html
第162-171行:
if(direction === 'down'){
console.log('downer');
console.log(affected);
$(affected).removeClass('attached');
$(affected).removeClass('parked-top');
$(affected).addClass('parked-bottom');
}
它将downer和实际元素写入日志,但不会更改类。
它不会抛出错误或任何东西,只是忽略它。
编辑:将其保存到jsfiddle, http://jsfiddle.net/at9dZ/2/
正如您所看到的,如果您取消注释这些行上方的提醒,它将提醒......
答案 0 :(得分:4)
检查你如何缓存选择器:
var affected = $(this).parent('.product').children('.price');
所以你直接使用对象affected
而不是再次使用jQuery选择器。
if (direction === 'down'){
console.log('downer');
console.log(affected);
affected.removeClass('attached');
affected.removeClass('parked-top');
affected.addClass('parked-bottom');
}
另外,你可以通过以下方式来实现这一点(只是糖,真的):
affected.removeClass('attached parked-top').addClass('parked-bottom')
如果代码使用断点而不是其他时间,则意味着在执行代码时jQuery可能无法“找到”元素,因此可能未加载DOM。将代码包装在:
$(function() {
// Code here
});
或..
$(document).ready(function(){
// Code Here
});
确保它正确执行。