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

时间:2017-07-26 15:04:16

标签: javascript jquery html css

我有一个html元素,我们在加载主页面后动态添加一个css类。当我尝试在JQuery中检测此元素是否具有添加的类时,hasClass方法返回false。我建议这是因为该元素已被动态添加 。

我的代码被插入$(document).ready(function() {});内。

使用Javascript:

!$('#travel-1_1_').hasClass('complete');

HTML:

<rect id="travel-1_1_" width="64" height="12.6" y="28.5" x="48" class="complete"></rect>

4 个答案:

答案 0 :(得分:2)

您需要在页面加载后以一定间隔运行您的函数。这是一个选项:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你在哪里检查班级是否存在?

根据this回答,你应该可以在$(document).ready()函数中查看它。

答案 3 :(得分:0)

我的第一个建议是在添加课程时调用所需的任何功能。如果您没有控制添加类的代码,我认为最好的办法是设置一个Interval监听器。

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

间隔的单位是毫秒,所以这将每秒运行一次。如果你想要它需要更长的时间,只需将它想要在检查之前等待多少秒。此解决方案的优点是,一旦发现元素具有类,它将停止运行。