首先,代码正在运行,但在我看来并不理想。
我喜欢Javascript中的匿名函数。所以我在注册onclick
处理程序时可以使用匿名函数:
$(function()){
$(".foo").on("click", function() {
..
});
}
但有时,我意识到我还需要调用该函数onReady
。所以,我可以将代码转换为:
$(function()){
function bar() { .. }
$(".foo").on("click", bar);
bar(); //'onload'
}
但那是很多工作! (懒惰是程序员的一个很好的特征)。我必须创建一个非匿名函数,更改onclick registrion等。是否可以保留匿名函数?
在理想的情况下,我有类似的东西:
$(function()){
$(".foo").on("click onDomLoaded", function() {
..
});
}
但那不起作用。
(我看到的唯一选择是扩展'on'功能,但这看起来很难看)
答案 0 :(得分:0)
您可以添加.click()
跟踪以在加载时触发:
$(".foo").on("click", function() {
..
}).click(); //trigger on load
答案 1 :(得分:0)
试试这可能对你有帮助。
$(function()){
$(".foo").on("click", function(){ bar();});
bar(); //'onload'
}
function bar() { .. }
答案 2 :(得分:0)
@tymejV的想法很接近,但我可能会有一些不受欢迎的副作用 - 例如,已经有限的点击事件。幸运的是,我们在jQuery中有'namespaced events'来解决问题:
$(function()){
$(".foo").on("click load.somenamespace", function() {
..
}).trigger("load.somenamespace");
}