等到HTML元素获得一个类,然后做一些事情

时间:2012-04-26 13:49:17

标签: javascript jquery html

我正在等待document.ready事件,以便在我的页面上执行某些操作。

一些其他脚本,我无法改变,一旦我的脚本被调用,它还没有发挥其魔力。因此,对类名的jquery选择失败,因为DOM中尚不存在该类。

这就是为什么我要告诉我的函数在元素获得某个类之前监听,然后用它做一些事情。

我如何实现这一目标?

3 个答案:

答案 0 :(得分:13)

像这样(伪代码):

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();

委托事件

答案 1 :(得分:3)

添加课程后,您可以触发某些事件。

示例:

$('#ele').addClass('theClass');
$(document).trigger('classGiven')


$(document).bind('classGiven',function(){
    //do what you need
});

答案 2 :(得分:0)

如果我的问题出错了,我很抱歉,为什么不在文档上做一些简单的事情。 :

$("#myelement").addClass('myclass');

if($("#myelement").hasClass('myclass')) {
    alert('do stuff here');
}