我正在尝试使用JQuery的on()函数将事件附加到按钮以及稍后将动态创建和注入的任何按钮。但是,当我运行测试网站时,它会调用alertMe()而不单击按钮。 alertMe在.js文件中,当然,我有JQuery文件。这是一个简单的示例,我可以创建 - 我在这里错过了一些东西与JQuery附加此事件?
<body>
<script src="Scripts/JScript.js" type="text/javascript"></script>
<script src="Scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('button').on("click", alertMe());
});
</script>
<form id="form1" runat="server">
<div id="1">
<button data-attr="1">
Say Sumfin'</button>
</div>
</form>
</body>
data-attr
只是一个自定义属性,我将用它来识别我将要附加的按钮。
所以问这个问题的原因仍然很明显,我已经按原样离开了。但这就是我过去常常将事件正确附加到动态添加的元素。
$(document).on('click', '[data-attr]', alertMe);
答案 0 :(得分:9)
此:
$( 'button' ).on( 'click', alertMe );
.on()
方法期望函数引用作为其第二个参数。请注意区别:
alertMe // function reference
alertMe() // function invocation
答案 1 :(得分:0)
因为你在函数名后加括号!这意味着,“调用此函数”。