在过去的三个小时里,我一直在绕圈子试图解决这个问题,这很奇怪......
我有一个像这样动态生成的无序列表:
var numberOfSlides = 7;
for (i = 0; i < numberOfSlides; i++) {
main.menu.append("<li class='ui-state-disabled'>List item " + i + "</a></li>");
}
这个正确的渲染(全部禁用):
List item 0
List item 1
List item 2
List item 3
List item 4
List item 5
List item 6
稍后在代码中,我调用了一个应该激活指定项目的函数:
enableMenuItem(2);
enableMenuItem: function(slideNumber){
console.log("slideNumber: " + slideNumber); // log outputs "slideNumber: 2"
$("ul li").eq(slideNumber).removeClass('ui-state-disabled'); // this doesn't work
}
它适用于其他值,但不适用于 2,而且我发现如果我调用 enableMenuItem(5),则 2 会被激活。
奇怪的是,如果我这样做...
$("ul li").eq(2).removeClass('ui-state-disabled');
...有用。
但这并不...
if(slideNumber === 2){
console.log("slideNumber equals 2"); // logs "slideNumber equals 2", so the below line should execute
$("ul li").eq(2).removeClass('ui-state-disabled'); // doesn't work
}
我是疯了还是这很奇怪?