Javascript 单击“不在按钮上工作”

Javascript 单击“不在按钮上工作”,javascript,jquery,html,Javascript,Jquery,Html,当我点击页面上的“点击我”按钮时。我想知道,按钮被点击后,会弹出一个警报,说“嗨”。这是我的代码,它不起作用 <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function(){

当我点击页面上的“点击我”按钮时。我想知道,按钮被点击后,会弹出一个警报,说“嗨”。这是我的代码,它不起作用

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("#btn").click(function(){
  $(this).data('clicked', true);
     });
if($('#btn').data('clicked')) {
alert("HI");
}
});
</script>
</head>
<body>
<input id="btn" value="Click Me" type="button"></input>
</body>
</html>

$(文档).ready(函数(){
$(“#btn”)。单击(函数(){
$(此).data('clicked',true);
});
如果($('#btn')。数据('点击'){
警报(“HI”);
}
});

警报移动到处理程序内部:

$("#btn").click(function(){
    $(this).data('clicked', true);
    if($(this).data('clicked')) {
        alert("HI");
    }
});

if
语句不会自动运行(在页面加载时它会自动运行,因为它在DOM就绪事件中)-它必须在事件中。

您完全可以删除if语句。 将alert()调用放入click回调函数是关键

$(document).ready(function(){
  $("#btn").click(function(){
      alert("HI");
   });
});

实际上,它将运行并为“false”,因此没有评估。我喜欢你的回答+1它正在工作,但是否有任何方法可以在处理程序外部编写警报。@user3885720--为什么要在处理程序外部编写警报?@tymeJV-因为我想在if条件内部添加更多代码。@user3885720--然后添加它-但如果希望每次单击按钮时都运行警报,请将其保存在处理程序中。