好的我是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,它只是我在测试时所做的更改。
提前致谢。
答案 0 :(得分:8)
变化:
$(document).on("click", "a.addUser", AddUser());
到
$(document).on("click", "a.addUser", AddUser);
通过在AddUser中添加括号,您可以在代码中的那一点上有效地调用它。
答案 1 :(得分:3)
$(document).on("click", "a.addUser", AddUser);
或
$(document).on("click", "a.addUser", function(){
AddUser();
});
答案 2 :(得分:2)
只需从AddUser()
$(document).on("click", "a.addUser", AddUser);
答案 3 :(得分:1)
更改
$(document).on("click", "a.addUser", AddUser());
到
$(document).on("click", "a.addUser", AddUser);
因为AddUser()
是自我调用的并且在页面加载后执行。
OR
$(document).on("click", "a.addUser", function(){
AddUser();
});
因为function() { AddUser(); }
不是自我调用的块,并且会在事件发生时执行其中的所有内容。
答案 4 :(得分:0)