问题标签 [document-ready]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - $(doucment).ready(function(){}); 和 $(window).load(function() {}); 混乱
我在http://www.marioplanet.com/product.htm上的测试产品页面有一些奇怪的行为,我真的可以使用一些帮助来解决。
现在,我之前在调整图像大小时遇到了问题,这里有人帮我说我应该将图像调整大小嵌套在
为了在调整大小发生之前加载图像,以便调整大小不会找到不正确的宽度和高度,因为它还没有加载,而不是将其嵌套在文档就绪函数中。
现在我已经这样做了,我想知道我应该如何处理嵌套在我的文档就绪函数中的 jQuery,因为它是 fancybox jQuery 插件,但它似乎无法正常运行。
如果我将fancybox jQuery 从准备好的文档移动到窗口加载功能,由于某种原因,它都不起作用!
我真的可以在这里使用一些帮助,因此非常感谢任何信息或建议!
谢谢!
更新:
顺便说一句,最好弄清楚如何使图像根本不加载,并且在将按比例缩小的效果应用到图像后才加载,这样图像就不会显得很大然后就出来了无处可去,缩小。
jquery - HTML 页面中多个 $(document).ready() 的副作用(如果有的话)是什么?
我正在使用一个遵循 MVC 模式的 Web 应用程序框架(Symfony 1.3.6)。
视图层由模板装饰器组成。模板文件还可能包含其他模板 - 这就是我提出问题的原因。
假设有一个页面(我们称之为“主页”),它由几个模板组成 - (代码已被重构,因此“子模板”可以在其他页面上使用。
作为重构的结果,主模板使用的小模板(在我们的示例中为“主页”)需要包含与 jQuery 相关的代码。
假设主页模板使用 2 '子模板:
- 模板 A
- 模板 B
假设模板 A 包含以下代码段:
假设模板 B 包含以下代码段:
现在模板“主页”看起来像这样:
我已经尝试过了——令我惊讶的是,它的工作原理是在合并的最后一页('主页)中只有一个 $(document).ready()。
我不确定我的浏览器 (Firefox) 或 Web 框架 (Symfony) 是否在幕后进行了一些“清理”。
所以我的问题是,如果您想将 jQuery 功能重构为“可重复使用的小模板”,以便在不同页面中提供相同的功能,那么最好的方法是什么?
顺便说一句,我希望没有人建议编写一个 jQuery 插件,因为那不是我在说的。
jquery - 我的 jQuery 就绪函数启动得太早了……它还没有准备好!
我正在向作为复杂页面一部分的几个 div 标签添加可调整大小。但是 $(document).ready() 如果执行得太早。并非所有内容都已解析并且可调整大小失败。
如何让 jQuery 真正等到文档准备好?
我试过了...
通过添加一个与这些代码相同的临时按钮,我在呈现页面后单击该按钮,我得到了适当的可调整大小的 UI。
我将 jQuery v1.4.2 和 jQuery UI v1.8.4 与 Firefox v3.6.8 一起使用。
jquery - 在继续之前验证所有图像是否已加载到 `$(window).load()` 函数中
我正在向页面添加大量用于幻灯片放映的大图像,但我只想在页面的正常部分(包括图像)完全加载后才开始加载这些图像。
为此,我在$(window).load()
函数中添加图像:
幻灯片slideSwitch()
应该在所有图像完全加载后开始,但就像现在一样,它从元素添加到 DOM 的那一刻开始。
我不能将循环移动到document.ready
函数,因为我不希望幻灯片干扰正常图像的加载。
在设置间隔之前如何检查是否所有图像都已加载?
jquery - jquery:取消绑定加载的函数
我有一个功能可以在页面加载时调整图像背景的大小,
当我点击一个按钮时,我想“卸载”或“删除”这个加载的函数,这样我就可以重新加载这个函数,而不是把它加载到页面顶部,
但我不能让它工作!请问有什么想法吗?
谢谢,刘
javascript - Internet Explorer 中的 Javascript:加载/注册变量后如何做某事
我正在使用一些 jQuery,它在除 Internet Explorer 8 之外的所有浏览器中都能正常工作(可能不是早期版本,尽管我并不担心这些。)。我正在使用 jQuery 的 .each 函数循环遍历 JavaScript 数组中的每个元素,该数组是由我正在使用的相当不灵活的 CMS 在我的页面上自动生成的。
例如,我的 CMS 用 javascript 将这个图像对象数组写入我的页面:
然后我使用 jQuery 每个函数来循环这个数组,并在一个漂亮的小无序列表中返回所有图像。
问题是在使用 jquery 的时候
在 FF/Safari/Chrome 等中运行良好,实际上能够立即呈现我的无序列表,Internet Explorer 似乎在注册 JavaScript 中存在“路径”数组之前运行了我的 document.ready 函数(即使这个 jQuery包含在图像数组的代码之后)。我知道这一点,因为我在 IE 中抛出了“路径为空/未定义”错误。
当我把它从
到
我的代码在 IE 中正常工作,因为它只在整个页面加载后才执行我的 jquery 'each' 函数(这很糟糕,因为它减慢了渲染时间并导致我正在尝试做的事情出现“滞后”......但是,嘿,如果它有效)。然而,如果网站已被缓存,IE 有时在使用 $(window).load 注册名为“paths”的数组之前仍然会触发我的每个函数。
有谁知道确保路径变量立即由 IE 注册的可靠方法,这样我的每个函数都不会失败?
jquery - jQuery 的 ready() 方法的快捷方式
我已经看到了 ready() 方法的一些快捷方式,并且想知道实际上哪个先发生,因为我的测试结果让我感到困惑..
这里自调用首先发生,然后是文档,然后是窗口。自调用技术是否被视为ready()方法?
jquery - 在什么情况下 $(document).ready 在后退按钮单击时触发?
我正在使用一些使用 JQuery 的 $(document).ready 功能来设置 jqGrid 实例的代码。即使通过后退按钮单击返回页面,似乎也会触发代码。
在精简的测试页面中,当通过后退按钮单击到达时,不会调用类似的准备函数:
你能告诉我在哪里寻找导致这种行为差异的原因吗?
我在对这个问题的回答中找到了一些相关信息,但是具有过度活动就绪事件的页面没有为卸载注册的事件处理程序。
javascript - 如何在外部 js 中移动像“ddaccordion.init”这样的 jquery 脚本?
嗨,我试图将我所有的 js 放在外部 js 文件中,因为我的网站的标题更轻。
所以在我的标题中我有这个脚本,效果很好:
但是当我尝试在这个外部 js 中移动这个脚本时,就像里面一样:
它不再启动。我找不到从外部 js 文件启动它的方法?
这一定是真正的新手问题:) 但我对 jquery 真的很陌生。谢谢您的帮助。
javascript - jquery选择器问题
我有一个 div,它在 jquery 的文档中准备好我附加 - 使用$("#div id").append('html text')
语法 - 有 10 个左右的 div 子元素。
完成此操作后,我尝试通过以下方式检查子 div 的内容,alert($(".classname"));
然后返回:
我本来希望它会用子 div 的 html 内容而不是 javascript 发出警报?
完整脚本:
更新:这里肯定会发生某种 jquery/javascript 竞争条件,如果我用setTimeout(function(){alert($(".unseen").html());},1000);
它替换警报会返回预期的文本。如果我将超时暂停更改为 1 毫秒,它会null
再次返回。
除了坚持延迟之外,不确定是否有“真正的”解决方法?