0

我正在尝试使用 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);
4

2 回答 2

9

这:

$( 'button' ).on( 'click', alertMe );

The .on() method expects a function reference as its second argument. Notice the difference:

alertMe // function reference

alertMe() // function invocation
于 2012-08-13T19:51:10.490 回答
0

Because you're putting parentheses after the function name! That means, "call this function".

于 2012-08-13T19:52:02.547 回答