我正在等待 document.ready 事件以便在我的页面上执行某些操作。
唉,其他一些我无法更改的脚本在调用我的脚本后还没有发挥它的魔力。因此,类名上的 jquery 选择失败,因为 DOM 中尚不存在该类。
这就是为什么我想告诉我的函数监听直到一个元素获得某个类,然后用它做一些事情。
我如何实现这一目标?
我正在等待 document.ready 事件以便在我的页面上执行某些操作。
唉,其他一些我无法更改的脚本在调用我的脚本后还没有发挥它的魔力。因此,类名上的 jquery 选择失败,因为 DOM 中尚不存在该类。
这就是为什么我想告诉我的函数监听直到一个元素获得某个类,然后用它做一些事情。
我如何实现这一目标?
像这样的东西(伪代码):
var timer = setInterval(function() {
if (element.className=='someclass') {
//run some other function
goDoMyStuff();
clearInterval(timer);
}
}, 200);
或监听要插入的元素:
function flagInsertedElement(event) {
var el=event.target;
}
document.addEventListener('DOMNodeInserted', flagInsertedElement, false);
jQuery版本:
$(document).on('DOMNodeInserted', function(e) {
if (e.target.className=='someclass') {
goDoMyStuff();
}
});
还有liveQuery插件:
$("#future_element").livequery(function(){
//element created
});
或者,如果这是一个常规事件处理程序,则使用 jQuery 的 on() 委托事件;
添加课程后,您可以触发一些事件。
例子:
$('#ele').addClass('theClass');
$(document).trigger('classGiven')
$(document).bind('classGiven',function(){
//do what you need
});
如果我把你的问题弄错了,我很抱歉,但为什么不在 document.ready 上做一些简单的事情呢?:
$("#myelement").addClass('myclass');
if($("#myelement").hasClass('myclass')) {
alert('do stuff here');
}