首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匿名调用函数中的JQuery :为什么?

匿名调用函数中的JQuery :为什么?
EN

Stack Overflow用户
提问于 2013-08-17 18:06:26
回答 3查看 25关注 0票数 0

我刚刚学习了一些关于JQuery的侦听器的教程。

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

这有什么原因吗?侦听器在匿名函数体之外工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-17 18:11:55

如果你的意思是:

代码语言:javascript
复制
(function() {
    // Your code here
})();

这是因为你在这个函数中声明的函数不会变成全局函数。全局名称空间已经足够拥挤,很少有任何理由添加到其中。

例如,如果您这样做:

代码语言:javascript
复制
<script>
function foo() {
    // ...do something useful...
}

// Use foo
foo(); // or `$("some selector").click(foo);`, etc.
</script>

.你会创建一个叫foo的全局的但如果你这么做

代码语言:javascript
复制
<script>
(function() {
    function foo() {
        // ...do something useful...
    }

    // Use foo
    foo(); // or `$("some selector").click(foo);`, etc.
})();
</script>

...you不知道。

票数 3
EN

Stack Overflow用户

发布于 2013-08-17 18:13:33

你是说文档准备功能吗?

代码语言:javascript
复制
$(document).ready(function() {
}

简短版本:

代码语言:javascript
复制
$(function() {
});

如果引用jquery,则此函数将在您的dom准备就绪时触发。不能将匿名自调用混合在一起:

代码语言:javascript
复制
(function() {
})();

最后一个问题与jquery无关。

票数 0
EN

Stack Overflow用户

发布于 2013-08-17 18:13:54

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

你指的是这样的事情吗?

代码语言:javascript
复制
$(".some-class").bind("click hover", function(){
    // Do something
});

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

代码语言:javascript
复制
Syntax

bind(eventType, data, listener)

在这里,eventType (字符串)是“单击”、“悬停”等事件,监听器(函数)是必须在触发eventType后立即执行的代码。

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18291852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档