为什么在没有单击按钮的情况下加载页面时会触发我的脚本功能?

Yat*_*rix 0 .net javascript jquery events

我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)

data-attr 只是一个自定义属性,我将用它来识别我将附加的按钮.

编辑

所以提出这个问题的原因仍然很明显,我已经按原样离开了.但这是我过去实际上正确附加到动态添加元素的事件.

$(document).on('click', '[data-attr]', alertMe);
Run Code Online (Sandbox Code Playgroud)

Šim*_*das 9

这个:

$( 'button' ).on( 'click', alertMe );
Run Code Online (Sandbox Code Playgroud)

.on()方法需要一个函数引用作为其第二个参数.注意区别:

alertMe // function reference

alertMe() // function invocation
Run Code Online (Sandbox Code Playgroud)