问题描述
- 关于JS修改网页元素的问题
-
亲们,我个JS问题啊。怎样在一个元素被创建后,立即执行某个JS函数呢?
解决方案
定时判断吧,把握好开启和关闭定时器的时机和频率,还是很可行的!
给你一个类似的判断CSS加载完毕的例子:
var com_private_setInterval_id = null;
var com_private_setInterval_count = 0;
/*校验样式是否加载完毕*/
function setCssListener() {
com_private_setInterval_id = setInterval(function() {
com_private_setInterval_count++;
if ($("#isLoaded").css("height") == "1px") {
clearInterval(com_private_setInterval_id);
onCssFinish();
}
if (com_private_setInterval_count * 200 > 10 * 1000) {
clearInterval(com_private_setInterval_id);
alert("加载公共CSS超时!");
}
}, 200);
};
用的时候重写onCssFinish()就OK。
解决方案二:
JQuery中提供了一个DOM元素插入事件 DOMNodeInserted ,我们可以通过监听这个事件来实现,这篇文章介绍了如何在a标签创建的时候执行js处理。
js设置链接为新标签打开
解决方案三:
你创建元素后直接执行代码就行了吧。。DOMNodeInsertedIntoDocument事件兼容性有问题。。
判定元素正在插入到DOM树——DOMNodeInsertedIntoDocument