主体上的JavaScript单击工作1次

主体上的JavaScript单击工作1次,javascript,click,alert,Javascript,Click,Alert,这是我的剧本- 当有人触摸页面上的任何位置时,我的脚本会发出警报。 我尝试只执行一次警报,而不是每次单击 这是我编写的代码,可以随时发出警报 $( document ).ready(function() { var click_count = 0; if (click_count == 0){ $('body').click(function(){ alert(); var click_count = 1; }); } }); 您的if放错了位置。您希望它位于单击处理程序

这是我的剧本- 当有人触摸页面上的任何位置时,我的脚本会发出警报。 我尝试只执行一次警报,而不是每次单击

这是我编写的代码,可以随时发出警报

$( document ).ready(function() {
var click_count = 0;

if (click_count == 0){

$('body').click(function(){

  alert();
  var click_count  = 1;
});



}
});

您的
if
放错了位置。您希望它位于单击处理程序(单击发生时运行的代码)内部,而不是外部。您还需要从
var单击\u count=1删除
var
因此,您使用的是
ready
回调中声明的,而不是
click
处理程序中声明的:

$(文档).ready(函数(){
变量单击计数=0;
$('body')。在(“单击”,函数()上){
如果(单击计数==0){
警惕(“你好”);
单击_count=1;
}
});
});
测试1 2 3

使用纯JavaScript,您可以

let clicked=false;
常量clickOnce=()=>{
如果(!单击){
警报(“点击”);
单击=真;
}
};
document.body.addEventListener(“单击”,单击一次)

某些正文内容
将您的
if
语句放在
click
callback中您还可以使用
$(“body”).off(“click”)
jquery为这些内容提供.one()函数一起删除事件列表输入case@user2256727如果是手机版,尝试将
单击
处理程序更改为
mouseenter
@user2256727:以上两种方法在移动设备上都可以正常工作。@user2256727:如果您的意思是堆栈片段在移动设备上不起作用,那么这是正确的(或者说,它们没有呈现为可运行)。不过,如果您真的尝试过,代码是很好的。我添加了到JSBin的链接,因为它对移动设备很友好。