我正在尝试启用键盘控制(向上/向下箭头)
我的jquery代码为
if($('.yumnak').hasClass('itemCur')) {
var pntr = $('.yumnak').hasClass('itemCur');
pntr.next().addClass('itemCur');
pntr.next().removeClass('item');
pntr.removeClass('itemCur');
pntr.addClass('item');
}
和标记为
<ul>
<li class="yumnak itemCur"><a href="#">one</a></li>
<li class="yumnak item"><a href="#">two</a></li>
<li class="yumnak item"><a href="#">three</a></li>
<li class="yumnak item"><a href="#">four</a></li>
</ul>
在这里,我的pntr
不会工作吗?它似乎无法正常工作。如何维护指针??
答案 0 :(得分:2)
写$('.yumnak').hasClass('itemCur')
返回一个布尔值,表示它是否有类。
您可能希望编写$('.yumnak.itemCur')
来选择包含两个类的元素。
答案 1 :(得分:1)
hasClass只返回一个布尔值。您想要选择您可以这样做的元素:
var pntr = $('.yumnak.itemCur');
答案 2 :(得分:1)
他们都说了什么。当前var pntr
返回true或false,因此您的jquery链接实际上并未附加到任何文档节点。它试图链接到true
或false
,这将失败。
你可以设置var pntr = $(this)
,它应该引用条件中的父级。
所以
if($('.yumnak').hasClass('itemCur')) {
var pntr = $(this);
pntr.next().addClass('itemCur');
pntr.next().removeClass('item');
pntr.removeClass('itemCur');
pntr.addClass('item');
}
答案 3 :(得分:0)
var pntr = $('.yumnak').hasClass('itemCur');
将返回true或false,具体取决于元素是否包含该类。要获得元素的实际句柄,请使用:
var pntr = $('.yumnak');
代替。
答案 4 :(得分:0)
hasClass
函数返回一个布尔值。
实际上你在布尔值上调用next()方法。
试试这个:
var pntr;
if ($('.yumnak').hasClass('itemCur')) {
pntr = $('.yumnak');
} else {
return; //or do other stuff
}