Javascript 询问jquery中的变量是否等于整数单击“不工作”

Javascript 询问jquery中的变量是否等于整数单击“不工作”,javascript,jquery,onclick,Javascript,Jquery,Onclick,标题确实解释了其中的大部分内容,但基本上,当我点击元素时,应该会发出警报,但事实并非如此。当我将alert()放在if之外,并在jquery的开头单击时,它也会起作用。这是我的密码: var hasClickedWelcome = 0; //Onclick event $(".menu-welcome" ).click(function() { var welcomeButton = document.getElementByClassName("menu-welcome");

标题确实解释了其中的大部分内容,但基本上,当我点击元素时,应该会发出警报,但事实并非如此。当我将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;
    }
});
alert("hello");
$(".menu-welcome").addClass("menu-welcome-clicked");
hasClickedWelcome = 1;

你的if语句没有意义

if(hasClickedWelcome == hasClickedWelcome)
alert("hello");
$(".menu-welcome").addClass("menu-welcome-clicked");
hasClickedWelcome = 1;
这将始终返回true,无论发生什么情况,您都会遇到此代码:

alert("hello");
$(".menu-welcome").addClass("menu-welcome-clicked");
hasClickedWelcome = 1;
因此,您有一个明确的逻辑问题

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

编辑:请参见Daniel Beck在评论部分的建议最初,您有语法错误,没有像document.getElementByClassName()这样的内置函数(除非它是您的自定义函数),所以很明显,即使您在单击开始时发出警告,它也不会工作。
alert("hello");
$(".menu-welcome").addClass("menu-welcome-clicked");
hasClickedWelcome = 1;
另外,您正在检查是否(hasClickedWelcome==hasClickedWelcome),这没有意义

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

用法:
document.getElementsByClassName(“菜单欢迎”)
以获取具有该类的节点数组。然后,您的其余逻辑将相应地进行处理。

hasClickedWelcome==hasClickedWelcome
始终为真。我想您需要
if(hasClickedWelcome==0)
在那里。没有函数
getElementByClassName
。它是
getElementsByClassName
,它返回一个
NodeList
,而不是一个元素。你为什么不直接使用
$(“.menu welcome”)
而不是
welcomeButton
?你是否在任何地方定义了hasClickedWelcome?这只是我在本文中添加代码时的一个问题,问题仍然存在。
这是元素本身。如果您想访问jQuery方法,必须将其包装为
$(this)
。这并不能回答问题-虽然它确实切换了类(如预期的那样),但您的答案并没有设置
haskickedWelcome
@而且我相信这是一种更简单的方法,可以准确地实现用户所需的功能。似乎该变量仅用于存储切换状态。如果提问者能提供更多关于用法的细节,那将是非常有用的。
alert("hello");
$(".menu-welcome").addClass("menu-welcome-clicked");
hasClickedWelcome = 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");
});