我已经看到了ready()方法的一些快捷方式,并想知道哪些实际发生,因为我的testing结果混淆了我.. $(document).ready(function(){ alert("document ready"); }); $(window).load(function(){ alert("window ready"); }); (function($){ alert("self invoke"); })(jQuery); 这里自调用首先发生,然后是文档,然后是窗口。 自调用技术是否被认为是ready()方法?
所以我一直在网上search,试图找出在这里发生了什么,我一直没有得到一个具体的答案。 我有一个$(document).ready在我的网站上,无论代码是多less次都可以运行。 我已经阅读了关于jQuery的错误报告,关于.ready事件将如何触发两次,如果你有你的语句中发生的exception。 但是,即使我有下面的代码,它仍然运行两次: $(document).ready(function() { try{ console.log('ready'); } catch(e){ console.log(e); } }); 在控制台中,我所看到的是“准备好”logging两次。 有没有可能是另一个。它有一个例外,会导致一个问题? 我的理解是,所有的.ready标签都是相互独立的,但是我似乎无法find这里起作用的地方? 这里是网站的头块: <head> <title>${path.title}</title> <meta name="Description" content="${path.description}" /> <link href="${cssHost}${path.pathCss}" rel="stylesheet" type="text/css" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript" charset="utf-8"><!—-></script> <script src="media/js/fancybox/jquery.fancybox.pack.js" type="text/javascript" ><!– –></script> <script src="/media/es/jobsite/js/landing.js" type="text/javascript" ><!– –></script> <script src="/media/es/jobsite/js/functions.js" type="text/javascript"><!– –> </script> <script src="/media/es/jobsite/js/jobParsing.js" type="text/javascript" charset="utf-8"><!—-></script> <script src="/media/es/jobsite/js/queryNormilization.js" type="text/javascript" charset="utf-8"><!—-></script> […]
最近我一直在使用JavaScript代码问题,并从我的$(document).ready()取出一部分代码,并将它放在$(window).load()解决了这个问题。 现在我明白了window.load是在document.ready之后被触发的,但是为什么在document.ready之后没有准备好,那就是window.load()呢?
我使用的是RequireJS,需要在DOM上准备好一些东西。 现在,RequireJS提供了domReady插件 ,但是我们已经有了jQuery的$(document).ready() ,因为我需要jQuery,所以我可以使用它。 所以我有两个select: 使用domReady插件: require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here… }); }); 使用$(document).ready() : $(document).ready(function() { // Do my stuff here… }); 我应该select哪一个,为什么? 这两个选项似乎按预期工作。 我对jQuery没有信心,因为RequireJS正在做它的魔法; 也就是说,因为RequireJS会dynamic地添加脚本,所以我担心在加载所有dynamic请求的脚本之前DOM就绪可能会发生。 而RequireJS会在我已经有jQuery需求的时候为domReady增加额外的JS负担。 问题 为什么RequireJS提供了一个domReady插件,当我们可以有jQuery的$(document).ready(); ? 我没有看到包括其他依赖项的任何优势。 如果只是为了满足需求,那么为什么不提供一个用于跨浏览器的AJAX呢? 据我所知,一个需要domReady的模块在文档准备就绪之后不会被获取或执行,你也可以做同样的要求jQuery: require(['jQuery'], function ($) { $(document).ready(function () { // Do my stuff here… }); }); […]
我在stackoverflow中看到了这个问题,但是并不觉得它被回答了。 $(document).ready必要的吗? 我将页面底部的所有JavaScript都链接起来,理论上它们都是在文档准备就绪之后运行的。
在ajax导航页面中,执行初始化JavaScript的经典“文档就绪”forms根本不会触发。 什么是正确的方式来执行ajax加载页面中的一些代码? (我的意思是,不是我的ajax …这是jQuery的移动页面导航系统,把我带到那个页面) 好吧,我怀疑这样的事情…非常感谢=)但是…它仍然不起作用,这是我的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>mypage</title> <link rel="stylesheet" href="jquery.mobile-1.0a4.min.css" /> <script type="text/javascript" src="jquery-1.5.min.js"></script> <script type="text/javascript" src="jquery.mobile-1.0a4.min.js"></script> <script type="text/javascript"> $('div').live('pageshow',function(event, ui){ alert('ciao'); }); </script> </head> <body> <div data-role="page"> <div data-role="header" data-position="fixed"> <h1>Shopping Cart</h1> </div> <div data-role="content"> asd </div> </div> </body> 我需要指定div ID吗?
从jQuery API文档站点 ready 以下所有三种语法都是等价的: $(文件)。就绪(句柄) $()。ready(处理程序)(不build议这样做) $(句柄) 做完功课后 – 阅读和播放源代码 ,我不知道为什么 $().ready(handler) 不推荐。 第一种和第三种方式是完全一样的,第三种方法调用caching的jQuery对象上的ready函数,其中包含document : rootjQuery = jQuery(document); … … // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } 但是ready函数与所选节点元素的select符没有交互作用, ready源代码: ready: function( fn ) { // Attach the listeners jQuery.bindReady(); // […]
我看到一个看似简单的问题(通过阅读Angular JS文档)解决scheme。 我有一个Angular JS指令,它根据其他DOM元素的高度进行一些计算,以定义DOM中容器的高度。 在这个指令里面有类似的东西: return function(scope, element, attrs) { $('.main').height( $('.site-header').height() – $('.site-footer').height() ); } 问题是当指令运行时, $('site-header')找不到,返回一个空数组,而不是我需要的jQuery包装的DOM元素。 是否有一个callback,我可以在我的指令中使用,只有在加载DOM后运行,我可以通过正常的jQueryselect器样式查询访问其他DOM元素?
$(document).ready是以下简写forms吗? (function($){ //some code })(jQuery); 我看到这种模式使用了很多,但我无法find任何参考。 如果是$(document).ready()简写forms,有没有什么特别的原因可能不起作用? 在我的testing中,似乎总是在准备好的事件之前开火。
当我第一次开始使用Javascript / jQuery的时候,我被告知要使用document.ready,但我从来没有真正明白为什么。 可能有人提供了一些基本的指导,什么时候在jQuery的document.ready包装javascript / jquery代码是有道理的? 我感兴趣的一些话题: jQuery的.on()方法:我对AJAX使用.on()方法相当多(通常在dynamic创build的DOM元素上)。 .on()点击处理程序是否总是 在 document.ready ? 性能: 在 document.ready 内部或外部保存各种javascript / jQuery对象是否更高效(性能差异是否显着?)? 对象范围:AJAX加载的页面无法访问上一页的文档内部的对象。是否正确? 他们只能访问document.ready 之外的对象(即真正的“全局”对象)? 更新:为了遵循最佳实践,我的所有javascript(jQuery库和我的应用程序的代码)位于我的HTML页面的底部 ,并且在装载了AJAX的页面上的包含jQuery的脚本上使用了defer属性,以便我可以访问这些页面上的jQuery库。