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

时间:2012-05-30 10:47:19

标签: jquery events binding

我试图理解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 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分: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')
       })

答案 3 :(得分:0)

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

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

罗布