2014-09-26 63 views
0

我实现了用于检测域上cookie的代码。Togglesclass对我不起作用

if (document.cookie.indexOf("temp") >= 0) { 
    $(".hideme").toggleClass("hide"); 
} 
else { 
    alert("Yo you don have cookie bro!"); 
} 

下面是HTML

<div id="wrapper" class="hideme"> 

</div> 

正如你可以看到,我想切换到类股利,但它并没有为我工作。控制台上没有错误

我的代码有什么问题? 我错过了任何分号或什么? PS:Cookie存在于浏览器中。

+2

没有什么是你的代码从我能看到的错误。可能错误的不是你发布的内容。你有没有定义班级隐藏?也许你应该只需要调用'.hide()' – 2014-09-26 20:09:11

+0

@DanielCook你说得对,我刚才忘了把代码的HTML – Amir 2014-09-26 20:42:08

回答

0

你不应该使用toggleClass()这里,它应该只是addClass()因为你不希望让倒装假摔类。 (确保你有你的CSS定义了一个名为“隐藏”类。

if (document.cookie.indexOf("temp") != -1) { 
    $(".hideme").addClass("hide"); 
} 
else { 
    alert("Yo you don have cookie bro!"); 
} 

除了要测试的indexOf()的感实性。只要确定它不等于-1,你就可以走了。 (如果indexOf()等于零,那么它是真的,因为数组可以从0开始0。)

+1

后,对于这种情况,'> = 0'是逻辑上等同于'!= -1'因为'的indexOf( )'返回数字> = 0或-1。 – 2014-09-26 20:13:38

+0

True @DanielCook,但通常情况下,大多数JS开发人员测试的是-1值而不是> = 0。 – 2014-09-26 20:15:14

+0

我很想看看公约的写法。我通常只是做'〜... indexOf()'如果我正在做布尔检查。 – 2014-09-26 20:16:26