【问题标题】:.load() works with window, not with ID.load() 适用于窗口,不适用于 ID
【发布时间】:2015-02-25 11:10:45
【问题描述】:

我想在加载完一个 Div 后执行一个命令。应该很容易,但我无法处理。

//With window it works fine
$(window).load(function()
{
	alert($("#firstAmazon").attr("class"));
});

//With an other Object not
$("#firstAmazon").load(function()
{
	alert("firstAmazon loaded");

});
<div class="socialIcon" id="firstAmazon">
	<a href="amazon" title="Amazon">
	<img src="../img/socialBar/amazon.png">
	</a>
</div>

那条评论很有帮助

div 元素不会引发加载事件,只有文档、窗口和 img 元素可以。 – Rory McCrossan 16 分钟前

实际上我想在加载 img (amazon.png) 后执行命令,所以文档准备好帮不了我。

它不像文档那样工作。我希望加载图像后触发 load()。

$("#firstPic").load(function()
{
	alert("firstPic loaded");

});
<div class="socialIcon">
	<img  id="firstPic" src="http://www.smartturtle.com/img/header.jpg">
</div>

这里是文档http://api.jquery.com/load-event/

$( "#book" ).load(function() {
  // Handler for .load() called.
});
&lt;img src="book.png" alt="Book" id="book"&gt;

【问题讨论】:

  • div 元素不会引发 load 事件,只有 documentwindowimg 元素会。
  • 使用 jquery 的 Document.ready 事件。只有当 div 得到渲染时才会触发 ready 事件。

标签: javascript jquery load


【解决方案1】:

div 元素不会引发加载事件。

使用document.ready 处理程序,如图所示:-

$(function(){
   alert("firstAmazon loaded");
});

document.ready 处理程序在 DOM 完全加载后执行。

【讨论】:

  • 实际上我想在加载 img (amazon.png) 后执行命令,所以文件准备好不要帮助我。
  • @DavidSiebenförcher...您可以使用.load() 获取图片.. 在这里查看stackoverflow.com/questions/3877027/…
【解决方案2】:

使用这个document ready function()

$(document).ready(function(){
   alert("firstAmazon loaded");
});

【讨论】:

  • 其实我想在加载 img (amazon.png) 后执行命令,所以文档准备好不要帮助我。
【解决方案3】:

试试这个

<script type="text/javascript">
                jQuery(document).ready(function($) {

                    $(window).load(function(){
                      alert($("#firstAmazon").attr("class"));
                    });

                });
            </script>

【讨论】:

  • window.load 函数仍然有效,但在加载图像时我永远不会收到标志。
  • 实际上我想在加载 img (amazon.png) 后执行命令,所以这对我没有帮助。
【解决方案4】:

你也可以试试这种方式来检查 div 是否加载

var interval;
window.onload = createInterval(); 

function createInterval(){ 
   interval=setInterval(readyCheck(),100); 
} 

function readyCheck(){ 
  if($('#firstAmazon img').get(0).complete){ 
     clearInterval(interval); 
     alert('firstAmazon loaded'); 
  } 
  else { 
     alert('firstAmazon loading');
  } 
} 

【讨论】:

  • 它开始间隔,但从不触发任何警报
  • 可能是jQuery版本冲突,试试这行interval=setInterval(readyCheck(),100);而不是 interval=setInterval("readyCheck()",100);
猜你喜欢
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 2016-06-05
  • 2020-09-28
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
相关资源
最近更新 更多