1 回答
TA贡献1827条经验 获得超4个赞
我刚刚在 jsfiddle 中运行了你的代码,但用一个字符串替换了 ajax,将新的 div 定义为 #something 的内容,并且它有效。
然而它确实需要我将 js 放入 $(document).ready 块中
$(document).ready(function() {
//your js in here
})
尝试一下。其作用是在渲染所有 HTML 之前不定义 js。我的猜测是您在 #something 存在之前引用了它。
编辑:===============================================
自从我写完答案以来,您已经对代码进行了很大的更改,但是为了支持我的主张,以解决我认为是您的问题,我重新完成了我的 jsfiddle 测试:https: //jsfiddle.net/uf5h0sgw/
<html>
<body>
<div id="something">AAAA</div>
<script>
$(document).ready(function(){
var id;
var cnum = 1;
setInterval(function(){
somepage();
addactiveclass();
}, 1000);
function somepage(){
$('#something').html('<div class="abc">BBBB</div>');
/*$.ajax({
url:"fetchcontents.php",
method:"POST",
success:function(data){
$('#something').html(data);
}
})*/
}
function addactiveclass(){
/*$('#list-'+id).addClass("active"); */
$('#something div').addClass("active" + cnum++)
}
});
</script>
</body>
</html>
我无法重现您的 ajax 响应,因此我刚刚添加了一些代码,以便在每次间隔到期时将 DIV 插入到 #something 中(测试时减少到 1000 毫秒)。
然后函数addactiveclass()改变已经添加的Div的类。我在每个循环的计数器上更改类名称,以便您可以看到该类每次都会更新。
显然,您必须调整我的代码来处理 AKAX 添加的任何内容,但该方法应该实现我认为您想要的效果。
- 1 回答
- 0 关注
- 132 浏览
添加回答
举报