Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等到HTML元素得到一个类,然后做一些事情_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 等到HTML元素得到一个类,然后做一些事情,javascript,jquery,html,Javascript,Jquery,Html,我正在等待document.ready事件,以便在我的页面上执行某些操作 唉,我无法改变的另一个剧本,在我的剧本被调用后,还没有发挥它的魔力。因此,类名上的jquery选择失败,因为该类在DOM中尚不存在 这就是为什么我想告诉我的函数监听,直到一个元素得到一个特定的类,然后对它做一些事情 如何实现这一点?类似于以下内容(伪代码): 或侦听要插入的元素: function flagInsertedElement(event) { var el=event.target; } document

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

唉,我无法改变的另一个剧本,在我的剧本被调用后,还没有发挥它的魔力。因此,类名上的jquery选择失败,因为该类在DOM中尚不存在

这就是为什么我想告诉我的函数监听,直到一个元素得到一个特定的类,然后对它做一些事情

如何实现这一点?

类似于以下内容(伪代码):

或侦听要插入的元素:

function flagInsertedElement(event) {
   var el=event.target;
}
document.addEventListener('DOMNodeInserted', flagInsertedElement, false);
jQuery版本:

$(document).on('DOMNodeInserted', function(e) {
    if (e.target.className=='someclass') { 
        goDoMyStuff();
    }
});
还有一个插件:


或者,如果这是一个常规事件处理程序,则使用jQuery的on()委托事件

您可以在添加类后触发一些事件

例如:

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


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

如果我把你的问题搞错了,我很抱歉,但为什么不在文件上做一些简单的事情呢。准备好了吗

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

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

你控制另一个脚本吗?你不能将你的代码作为另一个代码的回调调用吗?或者让另一个脚本触发一个自定义事件看起来像是这个问题的重复:@j08691唉,我没有。编辑了我的问题。我不使用此类添加元素。它由另一个脚本添加。我想抓住这个变化,然后对它做一些魔术。所以,如果可能的话,最好是在另一个脚本中添加callback?在这一点上获得了三次否决票,但这样一个简单的setInterval不会占用太多资源,而且工作得很好,但是如果找不到类,应该有某种形式的结束,就像一个超时函数,它会在几秒钟后清除间隔。用于侦听插入的DOM节点的jQuery函数可能是执行此操作的最佳方法,但除非删除处理程序,否则将继续检查所有插入的元素的类名,在我看来,这比使用setInterval更糟糕。
$('#ele').addClass('theClass');
$(document).trigger('classGiven')


$(document).bind('classGiven',function(){
    //do what you need
});
$("#myelement").addClass('myclass');

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