0

我正在尝试理解 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>

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

4

4 回答 4

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

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

于 2012-05-30T10:48:27.303 回答
0

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

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

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

于 2012-05-30T10:48:47.700 回答
0
<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')
       })
于 2012-05-30T10:50:48.673 回答
0

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

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

于 2012-05-30T10:53:33.773 回答