标签: document-ready

在document.ready之前,Jquery UI界面看起来很丑陋

HTML元素显示早于onload或document.ready被触发.

所有jQuery UI小部件都加载到document.ready上,它使页面看起来很难看,只需几秒钟.

处理它的可能选项 - 在使用jQuery UI进行拉伸之前隐藏元素,并在加载后用JS显示它们.但是如果JS被关闭 - 用户将看不到标准HTML和jQuery UI的任何元素.

使用它的最佳做法是什么?

jquery user-interface onload document-ready

14
推荐指数
1
解决办法
4884
查看次数

jQuery文档就绪函数

以下jQuery代码段的最终结果是否相同?

小片1:

$(function() { alert('test!'); });
Run Code Online (Sandbox Code Playgroud)

摘录2:

$(document).ready(function() { alert('test!'); });
Run Code Online (Sandbox Code Playgroud)

换句话说,$(function(){})只是简写$(document).ready(function() { });

我问的原因是因为我们在使用jQuery和jQuery UI构建的小应用程序中看到了一些奇怪的问题.有时,通过单击按钮执行表单提交操作时,浏览器窗口将冻结.我们仍然可以使用底层浏览器窗口(启动弹出窗口的窗口),直到我们在那里执行某些操作.用户只能通过强制关闭浏览器(显然是Internet Explorer)继续.我们怀疑这与Acrobat PDF插件有关,但我只是在这里查看所有角度,因为我发现这个问题似乎表现出类似的行为.

jquery jquery-ui document-ready

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

是否可以在图像开始加载之前运行javascript?

我想在浏览器请求之前更改图像的src属性,目的是使用像Timthumb这样的PHP脚本来减小图像的大小.使用jQuery,我认为$(document).ready可以做到这一点:

$(document).ready(function () {
  var imgs = $('#container img');
  jQuery.each(imgs, function() {
    $(this).replaceWith('<img src="timthumb/timthumb.php?src=' + $(this).attr('src') + '&w=200" />');
    });
});
Run Code Online (Sandbox Code Playgroud)

但原始的,未显示的图像仍然在后台下载到浏览器的缓存中.是否有可能在客户端做我想做的事情,或者服务器端是唯一的选择?

javascript jquery document-ready

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

使用jQuery"点击"li元素

我有一个<ul>动态生成<li>元素的元素,只是想运行一个onclick事件

<ul id="results">
    <li class="device_result searchterm" data-url="apple-iphone-5s">
        <a href="#"> Apple iPhone 5s </a>
    </li>
    <li class="device_result searchterm" data-url="apple-iphone-5c">
        <a href="#"> Apple iPhone 5s </a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我在一个$(document).ready块中有以下jQuery,但它似乎不起作用 - 任何想法我做错了什么?

$("li .searchterm").click(function() {  
    console.log("testing");
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery onclick document-ready

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

浏览器和文件准备好了吗?

我正在努力使用Browserify文档就绪事件.如何创建一个模块,用于导出仅在文档就绪事件触发后可用的内容?我如何依赖这样的模块?

我的第一个尝试是尝试异步设置module.exports - 开箱即用.我的下一个问题就是模块返回一个接受回调的函数,并在文件准备好时触发调用.第三次尝试回复了承诺.这似乎使依赖模块不是非常模块化的,因为现在依赖的模块及其依赖性(以及它们,乌龟一直向下)也必须利用这种模式.

使用Browserify和文档就绪事件有什么好的模式?

javascript document-ready onreadystatechange browserify

12
推荐指数
2
解决办法
4917
查看次数

jQuery ready函数在对话框中被调用两次

我正在使用PHP脚本中的选项卡构建一个jQuery对话框.该脚本在循环内使用'include'指令,迭代选项卡并包含其他脚本.每个包含的文件都有选项卡的数据和一个带有jQuery document.ready()函数的<script>标记.没有循环,它基本上这样做:

<div id="tabDialog">
  <div id="tabs">
    <ul>
      <li><a href="#tab1'>Tab1</a></li>
      <li><a href="#tab2'>Tab2</a></li>
    </ul>
    <div id="tabContainer">
      <div id="tab1">
        <?php include "tab1.php"; ?>
      </div>
      <div id="tab2">
        <?php include "tab2.php"; ?>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

例如,tab1.php可能具有以下内容:

<script type="text/javascript">
   $(document).ready (function () {
       alert ('tab1 loaded');
   });
</script>
Run Code Online (Sandbox Code Playgroud)

问题是,在使用<div id ="dialog">作为对话框的DIV创建和打开对话框时,第二次调用文档的就绪函数.这是对话框代码:

 $("#tabDialog").dialog ({
   autoOpen: false,
   minWidth: 450,
   minHeight: 400,
   width: 600,
   height: 500
 }).dialog ('open');
Run Code Online (Sandbox Code Playgroud)

造成这种情况的原因是什么,以及解决这种情况的最佳方法是什么?我试图将每个选项卡的功能保存在单独的文件中,因为它们可以在多种情况下使用,而且我不必复制与它们关联的代码.

感谢您的帮助或建议.

php jquery dialog document-ready

11
推荐指数
2
解决办法
6393
查看次数

在$(document).ready()之前运行一个函数

我已将多个文件中的多个函数附加到$(document).ready,并希望在它们之前附加一个函数作为$(document).ready处理的第一个函数或者在$(document)之前独立触发的函数.ready处理程序.

有没有办法处理jQuery在jQuery.fn.ready中内部触发的函数的顺序,或挂钩在jQuery.fn.ready之前调用的函数.

在第三方脚本中编辑jQuery.fn.ready是安全的,或者它会在其他第三方插件中引起可怕的敲击效果(除了编辑jQuery.fn.ready本身的插件)

[编辑]:

举个例子

$(document).ready(function b() {});
....
$(document).ready(function a() {/* optional setup*/});
....
$(document).ready(function c() {});
Run Code Online (Sandbox Code Playgroud)

函数a首先需要与订单无关,但只能在几页上调用.我不能保证b或c的顺序,所以我不能在b或c的开头触发自定义事件来触发a.

所以我想要一个通用的解决方案,我可以用它来强制放置一个jQuery的内部readyList或挂钩到jQuery的ready函数的开头并安全地编辑它,所以它在readyList中的任何其他函数之前调用它.

[进一步编辑]

如果可能的话,我宁愿不必重新设计javascript代码执行顺序,或者除了函数a()之外还必须触及任何其他代码.我知道重组可以让我解决这个问题,但我宁愿只写一个函数

$.beforeReady(function a() {});
Run Code Online (Sandbox Code Playgroud)

javascript jquery events document-ready

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

Chrome中的JQuery div.height是错误的,以使所有div的高度相同

我用下面的代码有相同的高度rightpos,leftposmiddlepos申报单:

<script>

    jQuery.noConflict();
    jQuery(document).ready(function($){

        // Find the greatest height:
        maxHeight = Math.max($('#rightpos').height(), $('#middlepos').height());
        maxHeight = Math.max(maxHeight, $('#leftpos').height());

        // Set height:
        $('#rightpos').height(maxHeight);
        $('#middlepos').height(maxHeight);
        $('#leftpos').height(maxHeight);

    })
</script>
Run Code Online (Sandbox Code Playgroud)

使用这种方式为http://yaskawa.ir/的主页确定最高的div 在Firefox中运行良好,但在Chrome中有问题.


Sparky672回答后更新1:

我可以看到,使用此代码,alert('test here');最后不起作用.

<script>
    jQuery.noConflict();
    //jQuery(document).ready(function($){});

    jQuery(window).load(function($){

        // Find the greatest height:
        maxHeight = Math.max($('#rightpos').height(), $('#middlepos').height());
        maxHeight = Math.max(maxHeight, $('#leftpos').height());

        // Set height:
        $('#rightpos').height(maxHeight);
        $('#middlepos').height(maxHeight);
        $('#leftpos').height(maxHeight);

        alert('test here');
    })
</script>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

css jquery document-ready window-load

11
推荐指数
1
解决办法
1万
查看次数

为什么window.onload事件发生在$(document).ready之前?

如此线程中所述:window.onload vs $(document).ready().本window.onload应在随后发生的比$(document).ready(),但在这个简单的代码,日志会表明,onload事件发生ready事件之前执行?我在这里想念的是什么?

<!DOCTYPE html>
<html>

<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>

<body>
  <h1>A Simple Site</h1>
  <script>
    $(document).ready(function() {
      console.log("ready event fired");
    })
     window.onload = function() {
      console.log("onload event fired");
    }
  </script>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

javascript jquery onload document-ready

11
推荐指数
1
解决办法
4975
查看次数

HTML页面中多个$(document).ready()的副作用(如果有的话)是什么?

我正在使用一个遵循MVC模式的Web应用程序框架(Symfony 1.3.6).

视图层由模板装饰器组成.模板文件还可能包含其他模板 - 这就是我的问题所在.

假设有一个页面(让我们称之为'主页'),它由几个模板组成 - (代码已经重构,因此'子模板'可以在其他页面上使用.

作为重构的结果,主模板使用的小模板(在我们的示例中为"主页")需要包含与jQuery相关的代码.

让我们说主页模板使用2'子模板:

  • 模板A.
  • 模板B.

假设模板A包含以下代码段:

<div id="field1">This is field 1</div>
<script type="text/javascript">
$(document).ready(function(){
   $('#field1').click(function(){
      alert('Field 1 clicked!');
   });
</div>
</script>
Run Code Online (Sandbox Code Playgroud)

假设模板B包含以下代码段:

<div id="field2">This is field 2</div>
<script type="text/javascript">
$(document).ready(function(){
   $('#field2').click(function(){
      alert('Field 2 clicked!');
   });
</div>
</script>
Run Code Online (Sandbox Code Playgroud)

现在模板'主页'看起来像这样:

<html>
  <head>
    <title>Multiple jQuery snippet test</title>
    <script src="path_to_jquery"></script>
 </head>
 <body>
   <div>include_template('template A')</div>
   <div>include_template('template B')</div>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我试过这个 - 并且令我惊讶的是,它在合并的最终页面('主页)中只有一个$(文档).ready().

我不确定我的浏览器(Firefox)或Web框架(Symfony)是否在幕后做了一些'清理'.

所以我的问题是,如果你想将jQuery功能重构为'可重复使用的小模板',可以重复使用以在不同的页面中提供相同的功能,那么最好的方法是什么?

顺便说一下,我希望没有人建议写一个jQuery插件,因为那不是我所说的.

jquery document-ready

10
推荐指数
2
解决办法
1261
查看次数