我有一个以magento加载的页面。由于我必须做一些快速修复,我需要检查DIV是否已加载。使用javascript插入。
div name:umm
使用此:https://stackoverflow.com/a/4160706/1147634
var len = jQuery('#umm').append('<a href="#">hi</a>')
.find('a')
.load(function() {
if( --len === 0) {
alert('all are loaded');
}
}).length;
使用javascript插入HTML。
<input id="evtproducttype" type="hidden" value="activities">
<input type="button" onclick="addInputGroup('evt_detail','evt_detaildhtmlgoodies_tabView1','evt_detailtabtitle');" value="+ Add Activity">
<div id="umm"></div>
<div id="dynamicGroupControl"></div>
我必须等到这个div被加载。
这不起作用,我的div是空的。
答案 0 :(得分:3)
您的代码看起来很不错 - 但为什么不这样做:
function addSomething() {
$('#parentelement').append('<div>your contents</div>');
// append is immediate - so you can now do your next step !
}
注意事项 - append函数将元素添加到父元素 - 因此您需要选择正确的父元素。一旦附加完成,您可以执行下一步。要调用您的添加,只需调用函数addSomething()
你有两个选择......
选项1 ...更改您的onclick
:
onclick="addInputGroup('evt_detail','evt_detaildhtmlgoodies_tabView1','evt_detailtabtitle'); addSomething();"
这会在addSomething
函数
addInputGroup
函数
选项2 ...更改您的功能:
function addInputGroup(arg1,arg2,arg3) {
// do your normal stuff
addSomething(); // or add the actual code here
}
第二个选项意味着更容易修改对函数的每次调用
唯一真正的选择是在你的div加载时实际调用一个函数...你可以使用livequery plugin - 这将在div实际完成加载时触发一个函数:
$('#umm').livequery(function(){
// the div has not loaded
});
答案 1 :(得分:1)
load()
事件仅对与URL关联的元素(从中加载资源)有意义。由于您无法在div
或a
上使用它,因此只能使用图片,脚本,框架,iframe和window
对象。
通过js添加div
的那一刻,它被插入到dom-tree中,并且准备好了#34;。你不需要检查。这只是远程资源所必需的。
编辑:
你需要等待那个电话,直到你的文件准备就绪(dom-tree已经建成)
出于这个原因,使用$(document).ready( <yourcodehere> )
或直接使用$( <yourcodehere> )
。