jquery - .on 事件在加载时触发而不是单击

标签 jquery dynamically-generated-co

好吧,我是 jquery 的新手,并且已经取得了相当大的进步,但是这个让我难住了。我有一个事件处理程序,我绑定(bind)到动态加载的 div 来处理点击悬停等,但是当我尝试绑定(bind)自定义函数时,它会在加载时触发它,而不是在单击时触发。

function AddUser(){
       alert('Hi');
       if ($section !== 'addUser'){
           $section = 'addUser';        
       $('.userPanel').empty();
       $('.userPanel').load('pages/addUser.html');
       }
       else{return;}
    }

    $(document).on("click", "a.addUser", AddUser());

但是,如果我在 .on 绑定(bind)内部定义一个事件,它就可以正常工作

        $(document).on("click", "a.addUser",function(){
        alert('Hi');
    });

我可能错过了一些基本的东西,但这让我整个早上都感到沮丧,所以任何帮助将不胜感激。

注意:我意识到绑定(bind)到文档是通用的,我应该绑定(bind)到我的静态父 div 之一,这只是我在测试时所做的更改。

提前致谢。

最佳答案

更改:

$(document).on("click", "a.addUser", AddUser());

$(document).on("click", "a.addUser", AddUser);

通过向 AddUser 添加括号,您可以在代码中有效地调用它。

关于jquery - .on 事件在加载时触发而不是单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12430375/

相关文章:

javascript - 将数组的子集与原始数组进行比较

jquery - 使用 MVC 和 JQuery 动态且一致地将值添加到表中

javascript - 悬停时用淡入淡出交换图像

php - 使用 jquery 更改多个动态 PHP 生成的文本框的值

assemblies - 是否可以编写一个动态生成新类并用新类修补自身的程序集?

jquery - GON - 在 js.erb + Rails 5 中没有获得值(value)

javascript - 自动滚动曾经有效,但现在不起作用