我刚刚关注了JQuery监听器的一些教程。
在本教程中,他们总是建议将所有JQuery脚本代码放在一个没有参数的匿名调用javascript函数中。
这有什么理由吗?听众在匿名函数体外工作。
答案 0 :(得分:3)
如果你的意思是:
(function() {
// Your code here
})();
这是因为你在该函数中声明的函数不会成为全局变量。全局命名空间非常拥挤,并且很少有任何理由可以添加它。
例如,如果您这样做:
<script>
function foo() {
// ...do something useful...
}
// Use foo
foo(); // or `$("some selector").click(foo);`, etc.
</script>
...你要创建一个名为foo
的全局。但如果你这样做:
<script>
(function() {
function foo() {
// ...do something useful...
}
// Use foo
foo(); // or `$("some selector").click(foo);`, etc.
})();
</script>
......你没有。
答案 1 :(得分:0)
你的意思是文件就绪功能吗?
$(document).ready(function() {
}
简短版本:
$(function() {
});
这个函数,假定引用了jquery,将在你的dom准备就绪时触发。 不得与匿名自我调用混在一起:
(function() {
})();
最后一个与jquery
无关答案 2 :(得分:-1)
你指的是这样的东西吗?
$(".some-class").bind("click hover", function(){
// Do something
});
如果你指的是这个,那么这可能会有所帮助
Syntax
bind(eventType, data, listener)
这里eventType(字符串)是“click”,“hover”等事件 listener(function)是一旦触发eventType就必须执行的代码。
因此,无论名称如何,只要事件被触发就会运行该函数。