【问题标题】:execute functions after a dynamically created div's content(like images) is loaded, using jQuery在加载动态创建的 div 的内容(如图像)后执行函数,使用 jQuery
【发布时间】:2012-10-23 13:04:07
【问题描述】:

我只想在动态创建的 DIV 的内容(包括文本和图像)完全加载后执行某些功能。这里动态创建的DIV是“#element”+data。

下面的不工作。

$("#section"+currSect).delegate( "#element"+data, "load", function()
{ remvPanel(); showFormBox(); }
);

这也不起作用。

 $("#element"+data).load(function() {remvPanel(); showFormBox();});

请帮忙! :(

【问题讨论】:

  • 为什么只委托给一个元素?
  • 是的,但是您可以在创建元素时动态地将事件处理程序添加到元素。我不确定,但我想知道如果您删除了它正在工作的元素,是否会删除以这种方式创建的事件处理程序。
  • 我做了:在创建元素时将事件处理程序附加到元素。它是如何创建的?通过 jquery,还是加载 HTML?
  • 通过 jquery 使用 createElement.
  • 您是否尝试在将元素添加到 DOM 后添加 .load 事件处理程序?

标签: jquery delegates load


【解决方案1】:

这样可以吗?

jQuery .load()

此方法是 .bind('load', handler) 的快捷方式。

当一个元素和所有子元素都被完全加载后,加载事件就会被发送到该元素。此事件可以发送到与 URL 关联的任何元素:图像、脚本、框架、iframe 和窗口对象。

例如,考虑一个带有简单图像的页面:

<img src="book.png" alt="Book" id="book" />

事件处理程序可以绑定到图像:

$('#book').load(function() {
  // Handler for .load() called.
});

一个工作示例:

<head>
    <title></title>
    <script src="Scripts/jquery-1.8.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $div = $("#main");

            // get loaded alert
            $img = $("<img src='https://www.google.com/images/srpr/logo3w.png' />");

            // no loaded alert
            // $img = $("<img src='not a valid image' />");

            $img.load(function () {
                alert("loaded");
            });

            $div.append($img);
        });
    </script>
</head>
<body>
    <div id="main">
    </div>
</body>

【讨论】:

  • 我添加了一个完整的例子。具体来说,什么不起作用?
  • 也许提供更完整的代码示例。除了你所提供的,我无法帮助你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多