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

标签 javascript jquery .net events

我正在尝试使用 JQuery 的 on() 函数将事件附加到按钮以及稍后将动态创建和注入(inject)的任何按钮。但是,当我运行测试网站时,它会调用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);

最佳答案

这个:

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

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

alertMe // function reference

alertMe() // function invocation

关于javascript - 为什么在没有单击按钮的情况下加载页面时会触发我的脚本函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11941273/

相关文章:

javascript - ReactJs - 从 reducer 返回相同状态时不会触发 componentWillReceiveProps

javascript - 阻止具有点击事件的项目中的 <a> 链接上的 javascript

javascript - 检查动态插入的输入字段是否存在

C# 频闪仪,Thread.Sleep

c# - 使用正则表达式从字符串中检索数字

javascript - Highcharts 多个图形堆叠在单独的 "<div>"中并具有组合缩放

javascript - 页面加载时,JQuery Stop Div 显示在屏幕上

<a> 上的 jQuery 单击事件触发两次

javascript - 如何在 Javascript 中使文本中的每个字母具有不同的随机颜色

.net - 应用程序日志记录