标签: document-ready

AJAX加载的内容是否会获得"document.ready"?

昨天我遇到了一个问题,.on('click')我分配的事件处理程序无法正常工作.事实证明这是因为我试图.on('click')在DOM中存在该元素之前应用它,因为它是通过AJAX加载的,因此当document.ready()达到这一点时它还不存在.

我用一个尴尬的解决方法解决了它,但我的问题是,如果我要<script>在ajax加载的内容中添加一个标记而另一个document.ready()内部,那么document.ready()只有在ajax内容被加载后才能解析第二个吗?换句话说,它是否认为单独加载的ajax内容是另一个document,如果是这样,document.ready()在ajax加载的HTML中是否有另一种内容以我认为的方式工作?

另外; 什么是处理这种情况的更好方法?(需要将事件侦听器附加到尚不存在的DOM元素上document.ready())

jquery event-handling addeventlistener document-ready

36
推荐指数
3
解决办法
7万
查看次数

当你在同一个HTML页面上使用两个JavaScript文件中有两个jQuery $(document).ready调用时会发生什么?

我有一个关于jQuery的问题 $(document).ready

假设我们有一个包含2个JavaScript文件的HTML页面

<script language="javascript" src="script1.js" ></script>
<script language="javascript" src="script2.js" ></script>
Run Code Online (Sandbox Code Playgroud)

现在让我们在这两个脚本文件中说,我们$(document)如下

script1.js里面:

$(document).ready(function(){
    globalVar = 1;
})
Run Code Online (Sandbox Code Playgroud)

script2.js里面:

$(document).ready(function(){
    globalVar = 2;
})
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:

  1. 这两个就绪事件函数都会被触发吗?
  2. 如果是,那么它们被解雇的顺序是什么,因为文件将同时为两者准备好?
  3. 这种方法是推荐还是我们理想情况下应该只有1 $(文件).ready?
  4. 所有浏览器(IE,FF等)的执行顺序是否相同?

谢谢.

html javascript jquery dom document-ready

35
推荐指数
2
解决办法
2万
查看次数

隐藏页面,直到加载所有内容高级

我有一个大量使用jQuery的网页.

我的目标是只在一切准备就绪时显示页面.

有了这个我想避免向用户显示恼人的页面呈现.

到目前为止我试过这个(#body_holder体内的包装):

$(function(){
    $('#body_holder').hide();
});
$(window).load(function() {
    $("#body_holder").show();
});
Run Code Online (Sandbox Code Playgroud)

这完全没问题,但弄乱了布局.

问题是隐藏包装器会干扰其他jQuery函数和使用的插件(例如layout-plugin).

所以我想必须有另一个技巧来做到这一点.在发生window.load之前,可能会在身体上放置一张图片或div?

你用什么方法?

编辑:

该解决方案最有可能有别的办法比display:nonehide();

javascript jquery document-ready

33
推荐指数
4
解决办法
7万
查看次数

document.ready和$ function之间的区别

可能重复:
这些jQuery就绪函数有什么区别?
jquery:选择document.ready方法

这样做有什么区别

$(function() {
    $("a").click(function(event){
        alert("Thanks for visiting!");
    });
});
Run Code Online (Sandbox Code Playgroud)

还有这个

$(document).ready(function(){
    $("a").click(function(event){
        alert("Thanks for visiting!");
    });
});
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-plugins document-ready

32
推荐指数
3
解决办法
4万
查看次数

在大型网站上管理document.ready事件

注意:我现在已经创建了一个jQuery插件,这是我尝试解决这个问题.我相信它可以改进,我可能忽略了很多用例,所以如果有人想提供反馈请随意:-) https://github.com/WickyNilliams/ReadyBinder

我没有这样的问题,但认为这将是一个有趣的讨论点,我希望人们对此有一些有趣的想法.

基本上,我在一个大型网站上工作,我们越来越多地编写越来越多的JavaScript.这很好,我喜欢JS独特的方法,我发现在语言的一些较暗的年代中可爱的奇怪之处;-)然而,一直困扰我的一件事是如何管理文档就绪事件,因为它们变得越来越大随着时间的推移(因此对于所服务的页面不太专注/特定)

问题是我们有一个JS文件(合并和缩小,虽然这对我的问题有点无关紧要).大多数JS都是使用揭示模块模式编写的,jQuery是我们选择的框架.所以我们所有的JS功能都在逻辑上分组为方法,命名空间,然后在脚本文件的底部我们有这个

$(function(){
    //lots of code here, usually calling encapsulated methods 
    //on our namespaced revealing module
});
Run Code Online (Sandbox Code Playgroud)

问题是并非本文档就绪处理程序中的所有代码都与每个页面相关.例如,在一个页面上只有10%可能是相关的,在另一个页面上,80%可能是相关的.对我来说,这感觉非常错误,我觉得我应该只执行每页需要的代码,主要是为了提高效率,还要保持可维护性.

我搜索谷歌搜索这个问题的方法,但找不到任何东西,也许我只是在寻找错误的东西!

无论如何,所以我的问题是:

  • 有没有人想过这个问题?
  • 这实际上是其他人的意见吗?
  • 您的代码中是否有一个庞大的,包罗万象的文档就绪处理程序,还是更专注于所服务的页面类型?
  • 如果是后者,你如何管理呢?多个处理程序在JS中切换或动态吐出文档就绪处理程序服务器端?

期待人们对此事的看法.

干杯

javascript maintainability jquery document-ready

31
推荐指数
1
解决办法
1327
查看次数

jQuery:强制执行document.ready()调用的执行顺序

我正在开发一个包含多个代码块的代码库,在document.ready()(jQuery)上设置一些行为.有没有办法强制在任何其他块之前调用一个特定的块?

背景:我需要在自动化测试环境中检测JS错误,因此我需要在任何其他JS代码执行之前开始记录JS错误的代码.

jquery document-ready order-of-execution

30
推荐指数
3
解决办法
2万
查看次数

jquery - $(document).ready函数内的函数

在其中创建函数是否正确

$(document).ready(function() {
Run Code Online (Sandbox Code Playgroud)

像这样:

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

     }
 });
Run Code Online (Sandbox Code Playgroud)

.ready()在dom准备好之前不需要调用函数,并且ready()触发事件内部的事件.

只是澄清一点 - 这里是代码,它将说明问题:

$(function() {
    var ind = 0;

    // some event is executed and changes the value of the ind

    // another event which affects the ind variable

    // and another one - after this event we call our function


    // there's another event - and we call our function again
Run Code Online (Sandbox Code Playgroud)

我需要调用的函数需要ind变量的更新值- 我想我可以将其作为参数传递,但是有更好的方法吗?

另外 - 另一个重要的事情是,function()问题还可以改变ind变量的值- 例如递增它(ind++ …

jquery document document-ready

28
推荐指数
2
解决办法
6万
查看次数

在ajax post之后执行document.ready

我有一个custom.js文件,其中有几个元素,其中包含click和其他绑定方法.整个文件封装在document.ready()中,一切正常.但是,当我做一个AJAX帖子时,显然document.ready()永远不会再为当前页面触发.无论如何我可以再次触发document.ready()或者我需要让命名函数中的所有内容从create.js.erb中调用它们吗?

ajax jquery post document-ready ruby-on-rails-3

26
推荐指数
3
解决办法
5万
查看次数

JQuery最佳实践,在IIFE中使用$(document).ready?

我正在看一段代码:

(function($) {    
   // other code here    
 $(document).ready(function() {   
    // other code here    
  });    
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

我虽然IIFE执行$(document).ready的功能,这段代码是否正确?或者我可以删除$(document).ready并将代码直接放在IIFE中.

jquery document-ready iife

26
推荐指数
2
解决办法
2万
查看次数

jQuery:文档准备好了,因为我的要求太早了

我正在开发一个基于所有照片的网站.此站点的某些区域需要基于图像尺寸进行计算才能正常工作.我所发现的是,准备好文件的时间太早了,因此我的gui表现不正常.

我删除了文档就绪函数并用好的'ol window.onload函数替换它,因为如果我正确读取,则在图像完全加载之前不会触发此函数.

我的问题是,这会导致任何问题吗?还有其他我可能错过的解决方案吗?

谢谢你的帮助!

jquery document-ready

24
推荐指数
4
解决办法
2万
查看次数