Javascript JQuery语句if/else不使用click函数,运行if和else部分
首先,我验证元素的文本是否为“ocultar菜单”,如果为真,我将更改文本并向其他一些元素添加隐藏类。我的意图是函数在那里中断,只在事件开始时看到文本的值,而在函数内部更改文本时看不到文本的值。但是当我单击一次时,它在浏览器的控制台中显示为隐藏,速度非常快,就像函数检查值并继续检查和传递代码的if和else部分。我使用了StopPropagation(),但不起作用,我尝试将on事件更改为click,但也不起作用。需要帮助,谢谢Javascript JQuery语句if/else不使用click函数,运行if和else部分,javascript,jquery,if-statement,logic,Javascript,Jquery,If Statement,Logic,首先,我验证元素的文本是否为“ocultar菜单”,如果为真,我将更改文本并向其他一些元素添加隐藏类。我的意图是函数在那里中断,只在事件开始时看到文本的值,而在函数内部更改文本时看不到文本的值。但是当我单击一次时,它在浏览器的控制台中显示为隐藏,速度非常快,就像函数检查值并继续检查和传递代码的if和else部分。我使用了StopPropagation(),但不起作用,我尝试将on事件更改为click,但也不起作用。需要帮助,谢谢 var $position = $("#ocult-menu
var $position = $("#ocult-menu").position();
$("#ocult-menu").on("click",function(){
var $text = $(this).find('p').text();
if ($text == "ocultar menu"){
$(".info").addClass("hide");
$(".photo").addClass("hide");
$(".map").addClass("hide");
$(".similar").addClass("hide");
$(".share").addClass("hide");
$("#menu-single").offset({left: $position.left});
$(".exibir").css("background-position","-1px 430px");
$(this).find('p').text("exibir menu");
}
else if( $text == "exibir menu"){
$(".info").removeClass("hide");
$(".photo").removeClass("hide");
$(".map").removeClass("hide");
$(".similar").removeClass("hide");
$(".share").removeClass("hide");
$("#menu-single").offset({left: $position.left});
$(this).find('p').text("ocultar menu");
}
});
您可能多次添加onclick处理程序,导致每次单击都执行多次。尝试添加一些日志语句,如下所示:
$("#ocult-menu").on("click",function(){
console.log("onclick");
...
if ($text == "ocultar menu"){
console.log("text = ocultar menu");
...
}
else if( $text == "exibir menu"){
console.log("text = exibir menu");
...
}
});
如果您看到“onclick”被多次记录,这就是问题所在。然后,您可以将此处理程序设置代码移动到初始一次性页面加载函数
$(function() {
$("#ocult-menu").on("click",function(){
...
});
});
希望能有所帮助。好吧,我在网站上看到,如果我去控制台键入$(“#ocult menu”),点击事件被调用了两次。点击()效果很好你能发布控制台输出吗?你的HTML标记不清楚,但要注意
$(this)。find('p')。text()
查找所有
元素类型为#ocult menu
?是一个正在重新加载页面的a
?如果你能制作一把小提琴来演示这个问题,那会有帮助的。我做了这个,但没用,争论了两次。。。现在我看到在站点的其他部分也发生了这种情况,当我调用ajax时,它会调用两次,我应该怎么做?这是一个点击事件。。。我在内部调用的函数被调用为twice在添加我建议的console.log语句后,您在日志中看到了什么?