在$(window).load()函数中运行jQuery,但不在$(document).ready函数内运行

时间:2013-04-05 05:21:58

标签: jquery

我有这个现有的功能,它将使用jQuery UI位置插件在网页中显示图标:

<script type='text/javascript'>
jQuery( document ).ready( function( $ ) {
var element_selector='.test';
if ( $(element_selector).length !== 0) {

//jQuery UI Position code here

}

 });
</script>

此功能位于HTML的页脚部分附近,尽管在某些地方它会在头部输出。有人建议我在$(window).load()函数中加载这个jQuery。原因是加载DOM时会触发$(document).ready事件,因此在文档结构准备好但在加载图像之前会触发它。

$(window).load()事件在加载整个内容后触发。因此.position()方法可能无法在早期(在加载图像之前)触发时计算正确的位置。

如果这是真的,如何在$(window).load()中修改上面的加载。感谢。

更新:我已更改:

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

对此:

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

我在控制台中收到此错误:

Uncaught TypeError: object is not a function 

这条线失败了:

$(divname515e62e8355b0).children().wrapAll('<div class="mydoc cf">');

其中divname515e62e8355b0是选择器在这里定义:

var divname515e62e8355b0 = '#test_selector';

3 个答案:

答案 0 :(得分:2)

jQuery(window).load(function($) {
    var element_selector='.test';
    if ( $(element_selector).length !== 0) {
        // Do stuff
    }
});

答案 1 :(得分:0)

我相信有可能jquery的文档就绪功能有时会在图像完全就绪之前触发。我发现在开发视差网站时就是这种情况。使用普通的javascript,像这样附加到window.onload事件

<script type='text/javascript'>
 window.onload = function(){
  var element_selector='.test';
  if ( $(element_selector).length !== 0 {

  //jQuery UI Position code here

  }
 };
</script>

答案 2 :(得分:-1)

JQuery window.onload函数就是这样使用的。

<script type="text/javascript">
window.onload = function() {  

 var element_selector='.test';
 if ( $(element_selector).length !== 0 {

 //jQuery UI Position code here

 }
}
</script>