Jquery 。在加载而不是单击时触发事件

Jquery 。在加载而不是单击时触发事件,jquery,dynamically-generated-co,Jquery,Dynamically Generated Co,好了,伙计们,我是jquery新手,已经取得了相当大的进步,但这一点让我感到困惑。我有一个绑定到动态加载的div的事件处理程序,用于处理单击、悬停等操作,但是当我尝试绑定自定义函数时,它会在加载时而不是在单击时触发它 function AddUser(){ alert('Hi'); if ($section !== 'addUser'){ $section = 'addUser'; $('.userPanel').e

好了,伙计们,我是jquery新手,已经取得了相当大的进步,但这一点让我感到困惑。我有一个绑定到动态加载的div的事件处理程序,用于处理单击、悬停等操作,但是当我尝试绑定自定义函数时,它会在加载时而不是在单击时触发它

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绑定中定义一个事件,它就可以正常工作

        $(document).on("click", "a.addUser",function(){
        alert('Hi');
    });
我可能错过了一些基本的东西,但这让我整个上午都很沮丧,所以任何帮助都将不胜感激

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

提前感谢。

更改:

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

通过将括号添加到AddUser,您实际上是在代码中的该点调用它。

更改:

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


通过将括号添加到AddUser,您实际上是在代码中的该点调用它。

只需从
AddUser()中删除括号即可。


只需从
AddUser()

改变

因为
AddUser()
是自调用的,并在页面加载后执行

因为,
function()

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

因为
AddUser()
是自调用的,并在页面加载后执行

因为,
function(){AddUser();}
不是自调用块,在事件发生时将执行其中的所有内容

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


使用函数签名,否则将调用函数。。 换成

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

使用函数签名,否则将调用函数。。 换成

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

在哪里添加代码?当您点击页面时,您是否希望运行?代码添加到哪里?当你们点击页面时,你们希望它能正常工作吗?这就是我所想的+1减少匿名功能。。如果你继续添加这样的函数,IE的旧版本将开始惩罚你。这就是我所想的+1冗余匿名函数。。如果你继续添加这样的函数,旧版本的IE将开始惩罚你。非常感谢,我认为这将是一个基本的东西,帮助了一大群人,现在我可以前进了。非常感谢,我认为这将是一个基本的东西,帮助了一大群人,现在我可以前进了。
$(document).on("click", "a.addUser", function(){
   AddUser();
 });
$(document).on("click", "a.addUser", AddUser);