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