繁体   English   中英

jQuery绑定:函数在事件发生之前运行

[英]jQuery binding : function runs before the event

我试图了解jQuery中的事件绑定。 我编写了一个简单的代码,如下所示:

<html>

<script language="javascript" src="jquery.js"></script>

<body>
<form>
<input type="button" name="bu1" value="click me">
</form>
</body>

<script language="javascript">
jQuery("input[type='button']").bind('click',alert('Hello'));
</script>


</html>

当我运行页面时,警报是在加载时发生的,而不是在单击按钮时发生的。 谁能帮助我了解我要去哪里错了?

jQuery("input[type='button']").bind('click', function () {
    alert('Hello');
});

您需要传递一个函数,而不是调用它。 因此,在上面的代码中,我添加了一个调用Alert的匿名函数。

您应该将函数作为第二个参数传递

jQuery("input[type='button']").bind('click', function() {
    alert('Hello')
});

否则,javascript将运行alert('Hello')以获取bind函数的第二个参数的值,因此您将在窗口中显示警报。

<script language="javascript">
 jQuery(function(){
      jQuery("input[type='button']").bind('click',function(){
      alert('Hello')
   })
 })

</script>

做里面

Jquery(function(){

})

然后编辑

 jQuery("input[type='button']").bind('click',function(){
          alert('Hello')
       })

是的,将其包装在一个函数中,我还将添加event.preventDefault():

jQuery("input[type='button']").bind('click', function(e) { 
  e.preventDefault();        
  alert('Hello');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM