Javascript 如何检测动态添加的css类

Javascript 如何检测动态添加的css类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个html元素,在加载主页一段时间后,我们在其中动态添加了一个css类。当我尝试在JQuery中检测这个元素是否有添加的类时,hasClass方法返回false。我建议这是因为元素是动态添加的 . 我的代码它被插入$(document).ready(function(){})中 Javascript: !$('#travel-1_1_').hasClass('complete'); <rect id="travel-1_1_" width="64" height="12.6" y

我有一个html元素,在加载主页一段时间后,我们在其中动态添加了一个css类。当我尝试在JQuery中检测这个元素是否有添加的类时,
hasClass
方法返回false。我建议这是因为元素是动态添加的 .

我的代码它被插入
$(document).ready(function(){})中

Javascript:

!$('#travel-1_1_').hasClass('complete');
<rect id="travel-1_1_" width="64" height="12.6" y="28.5" x="48" class="complete"></rect>
HTML:

!$('#travel-1_1_').hasClass('complete');
<rect id="travel-1_1_" width="64" height="12.6" y="28.5" x="48" class="complete"></rect>


您可能需要在设置类的同一位置进行检查,以确保只在之后执行该类

您在哪里检查该类是否存在


根据答案,您应该能够在
$(document).ready()
函数中检查它。

您需要在加载页面后每隔一段时间运行函数。这里有一个选择:

function fn60sec() {
// runs every 60 sec and runs on init.
$('#travel-1_1_').hasClass('complete');
}
fn60sec();
setInterval(fn60sec, 60*1000);

我的第一个建议是在添加类时调用所需的任何函数。在您无法控制添加类的代码的情况下,尽管我认为最好的做法是设置一个间隔侦听器

var classListener = setInterval(function(){
    if($('#travel-1_1_').hasClass('complete')){
        clearInterval(classListener);
        //Do your work here or
        doWorkFunctionCall();
    }
}, 1000);

间隔的单位是毫秒,因此它将每秒运行一次。如果您想让它花费更长的时间,只需将它乘以您希望它在检查之前等待的秒数即可。此解决方案的优点是,一旦发现元素具有类,它将停止运行。

javascript中的ID为
#travel-2_1
,但HTML中的ID为
#travel-1_1
这是一个细节:)。我更新了问题,在脚本运行后是否添加了元素和/或类。事件侦听如何?我想这会对你有所帮助。@DarthJDG也许我应该在页面的末尾加载javascript。你至少可以在满足条件时删除间隔。