0

我一直在关注一些关于 JQuery 侦听器的教程。

在本教程中,他们始终建议将所有 JQuery 脚本代码放在不带参数的匿名调用 javascript 函数中。

是否有一个原因?侦听器在匿名函数体之外工作。

4

3 回答 3

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>

......你没有。

于 2013-08-17T18:11:55.537 回答
0

你的意思是文件准备功能?

$(document).ready(function() {
}

精简版:

$(function() {
});

鉴于引用了 jquery,此函数将在您的 dom 准备好时触发。不得与匿名自调用混合:

(function() {
})();

最后一个和jquery无关

于 2013-08-17T18:13:33.963 回答
-1

你在说什么?你能再清楚一点吗?

你指的是这样的东西

$(".some-class").bind("click hover", function(){
    // Do something
});

如果您指的是这个,那么这可能会有所帮助

Syntax

bind(eventType, data, listener)

这里的 eventType (strings) 是“click”、“hover”等事件 listener(function) 是一旦 eventType 被触发就必须执行的代码。

因此,无论名称如何,只要事件被触发,该函数就会运行。

于 2013-08-17T18:13:54.190 回答