[英]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.