询问变量是否等于jquery中的整数点击不起作用

时间:2017-06-14 15:57:32

标签: javascript jquery onclick

标题真的解释了大部分,但基本上,当我点击元素时,这应该提醒,但事实并非如此。当我将alert()放在if之外,并且在jquery的开头点击时,它也 工作。这是我的代码:

var hasClickedWelcome = 0;

//Onclick event
$(".menu-welcome" ).click(function() {
    var welcomeButton = document.getElementByClassName("menu-welcome");
    if(hasClickedWelcome == 0) {
        alert("hello");
        $(".menu-welcome").addClass("menu-welcome-clicked");
        hasClickedWelcome = 1;
    } else {
        welcomeButton.classList.remove("menu-welcome-clicked");
        hasClickedWelcome = 0;
    }
});

3 个答案:

答案 0 :(得分:0)

你的if语句没有意义

if(hasClickedWelcome == hasClickedWelcome)

这将始终返回true,无论如何,您总是会点击此代码:

alert("hello");
$(".menu-welcome").addClass("menu-welcome-clicked");
hasClickedWelcome = 1;

因此,您有一个明确的逻辑问题。

编辑:请参阅Daniel Beck关于评论部分的建议

答案 1 :(得分:0)

最初,你有语法错误,没有像document.getElementByClassName()这样的内置函数(除非它是你的自定义函数),所以很明显,即使你在点击开始时发出警报也行不通。 此外,您正在检查if(hasClickedWelcome == hasClickedWelcome)哪个没有意义。

使用:document.getElementsByClassName("menu-welcome");获取具有该类的节点数组。然后,相应的其余逻辑。

答案 2 :(得分:-1)

//Onclick event
$(".menu-welcome" ).click(function() {
    // in jQuery "this" refers to the element that was selected in a callback
    // it looks like toggleClass is really what you're looking for
    $(this).toggleClass("menu-welcome-clicked");
});