【发布时间】:2015-04-23 13:06:06
【问题描述】:
我想根据当前部分更改导航(固定导航)颜色,但被航点卡住。当我调用它时,else 语句永远不会执行。有任何想法吗?
var mainNav = $('.navigation');
var section = $('section'),
white = $("section[data-color='white']"),
black = $("section[data-color='black']");
$('section').waypoint(function(){
if (white) {
mainNav.removeClass('light');
}
else {
mainNav.addClass('light');
}
});
白色和黑色是 jQuery 对象,而不是 HTMLElement。 Waypoints 中的元素选项需要一个普通的 ol' 元素。所以我使用了库提供的 jQuery 扩展。以下是完美的工作。
var mainNav = $('.navigation');
var $section = $('section'),
white = $("section[data-color='white']"),
black = $("section[data-color='black']");
white.waypoint({
handler: function(direction) {
mainNav.removeClass('light');
if (direction == 'up') {
mainNav.addClass('light');
}
}
});
black.waypoint({
handler: function (direction) {
mainNav.addClass('light');
if (direction == 'up') {
mainNav.removeClass('light');
}
}
});
【问题讨论】:
-
尝试使用
white.length -
它也不适用于
white.length。 -
创建一个 jsfiddle 或显示相关的 HTML 代码
-
您在哪个文件/行中得到错误?