$(function() {} ); 做?

IT技术 javascript jquery
2021-01-31 11:44:04

有时我创建一个函数并稍后调用该函数。

例子:

function example { alert('example'); }
example(); // <-- Then call it later

不知何故,有些函数不能被调用。我必须在里面调用这些函数:

$(function() { });

做什么$(function() {});(function() { });意味着,什么是这些区别/目的是什么?

6个回答
$(function() { ... });

只是 jQuery 的简写

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

它的设计目的(除其他外)是确保在页面的所有 DOM 元素都准备好可以使用时调用您的函数。

但是,我认为这不是您遇到的问题 - 您能否澄清“不知何故,某些函数无法调用,我必须在内部调用这些函数”的意思?也许发布一些代码来显示什么没有按预期工作?

编辑:重新阅读您的问题,可能是您的功能在页面加载完成之前正在运行,因此无法正常执行;把它放在 $(function) 中确实可以解决这个问题!

该函数在没有 $(function() 的情况下不起作用,尽管它已经在 $(document)ready() 中。
2021-03-14 11:44:04
如果 $(function() { }); 已经在 $(document).ready() 中?
2021-03-16 11:44:04
好问题!我相信它应该可以正常工作,因为 jQuery 知道您来对地方了,但这肯定是无关紧要的;如果你在 .ready() 里面,你可以像往常一样调用你的函数。如果它不起作用,那么发布一个示例,或者甚至更好 - 尝试将小提琴制作为 jsfiddle.net。
2021-03-21 11:44:04
“有经验的开发有时使用简写$()$( document ).ready()。如果你正在编写代码,谁不使用jQuery经验的人可能会看到,最好使用长表”。- learn.jquery.com
2021-03-25 11:44:04
@JeongWooChang 这样做(function () { ... })();您必须添加()才能调用您的函数。
2021-04-04 11:44:04

下面是一个 jQuery 函数调用:

$(...);

这就是“jQuery 函数”。$是一个函数,$(...)你是否在调用那个函数。

您提供的第一个参数如下:

function() {}

参数是您指定的$函数,该函数将在 DOM 加载完成时调用提供的方法。

它只是 的简写$(document).ready(),如:

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

有时您必须使用它,因为您的函数在 DOM 完成加载之前正在运行。

一切都在这里解释:http : //docs.jquery.com/Tutorials : Introducing_$(document).ready()

我认为您可能将 Javascript 与 jQuery 方法混淆了。Vanilla 或普通 Javascript 类似于:

function example() {
}

可以随时随地调用这种性质的函数。

jQuery(一个基于 Javascript 的库)内置了通常要求 DOM 在被调用之前完全呈现的函数。完成时的语法是:

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

因此,通常从该方法中调用$或 字为前缀的 jQuery 函数jQuery

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

该块的伪代码是:

当文档对象模型$(document)准备好后.ready(),调用以下函数function() { }在该函数中,检查<li>页面上的所有's$('li')并使用 jQuery 方法 .CSS() 将 CSS 属性“color”设置为值“red”.css('color', 'red');

一些理论

$是函数的名称,就像您为函数指定的任何其他名称一样。任何人都可以在 JavaScript 中创建一个函数并将其命名$如下:

$ = function() { 
        alert('I am in the $ function');
    }

JQuery 是一个非常著名的 JavaScript 库,他们决定将整个框架放在一个名为jQuery. 为了让人们更容易地使用该框架并减少jQuery每次想要调用该函数时输入整个单词的次数,他们还为它创建了一个别名。该别名是$. 因此$是函数的名称。在 jQuery 源代码中,您可以自己查看:

window.jQuery = window.$ = jQuery;

回答你的问题

那么什么是 $(function() { });?

既然您知道这$是函数的名称,那么如果您使用的是 jQuery 库,那么您就是在调用命名的函数并将$参数传递给function() {}它。jQuery 库会在适当的时候调用该函数。什么时候合适?根据 jQuery 文档,适当的时间是页面的所有 DOM 元素都准备好使用时。

实现此目的的另一种方法是这样的:

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

正如你所看到的,这更冗长,所以人们更喜欢 $(function() { })

所以有些函数不能被调用的原因,正如你所注意到的,是因为这些函数还不存在。换句话说,DOM 还没有加载。但是如果你把它们放在$作为参数传递给的函数中,DOM 就会被加载。因此,该功能已创建并可以使用。

另一种解释$(function() { })是这样的:

嘿,$ 或 jQuery,一旦 DOM 加载完毕,您能调用我作为参数传递的这个函数吗?