标题真的解释了大部分,但基本上,当我点击元素时,这应该提醒,但事实并非如此。当我将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;
}
});
答案 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");
});