jquery的.html()动态遍历html代码后,对原有的css和js无法控制问题 10

一下代码片段是我在jquery中通过动态循环,把一段html代码通过jquery的.html()方法写进去的,现在,这个图片轮换的效果出不来,我看网上的说法,就是.htm... 一下代码片段是我在jquery中通过动态循环,把一段html代码通过jquery的.html()方法写进去的,现在,这个图片轮换的效果出不来,我看网上的说法,就是.html()后,对css和js不受控制,如何改写才能让我这段html代码中的css有效,尤其是data-rel是调用的外部js文件的图片轮换效果!请教,请教!
var i;
var tempstr="";
var allimgdivstr="";
$.each(tempresponse['data'],function(key,val){
i=key+1;
tempstr="<div class=\"ownpic gallery-item\">
<img src=\"__ROOT__/Uploads/"+val+"\" alt=\"gallery "+i+"\" />
<div class=\"overlay\">
<a href=\"__ROOT__/Uploads/"+val+"\" data-rel=\"lightbox\" class=\"fa fa-arrows-alt\"></a>
</div>
</div> ";
allimgdivstr+=tempstr;
});
$('#ImagesLightBoxOne').html(allimgdivstr);是不是直接在$('#ImagesLightBoxOne').html(allimgdivstr);后面加如下代码?

$('#ImagesLightBoxOne a').addClass("fa fa-arrows-alt");
$('#ImagesLightBoxOne a').attr("data-rel","lightbox");
$('#ImagesLightBoxOne div:odd').addClass("ownpic gallery-item");
$('#ImagesLightBoxOne div:even').addClass("overlay");

我加进去后,还是没有效果。#ImagesLightBoxOne是包含以上遍历html的div容器。
展开
 我来答
bhbhxy
推荐于2017-12-15 · TA获得超过716个赞
知道小有建树答主
回答量:329
采纳率:50%
帮助的人:179万
展开全部
var flag = false; //标识,表示页面上数据还未处理完成
$.each(data,function(i,o) {
//你的代码

flag = true;//已经完成数据处理

});
var = t;

t = setInterval(function() {//定时检测
if(flag) {//如果数据已经处理完毕
load('你的js文件'); //加载你的js文件

clearTimeout(t);//取消定时检测节省开销
}
},50);

关键是你引入js文件执行的时机,页面上的数据还没有生成,但这个js已经执行了,由于找不到对应的元素,所以失效了,因为它只执行一次,数据处理完成以后它也不会再执行了。
上面代码提供的思路是检测数据是否已经处理完成,完成后再加载你需要的js文件,保证js的执行在数据处理完成之后。
追问
$.each()是循环遍历,flag=true连续执行?另外,我按照您的结构写了,还是没有实现效果。能不能在线帮助下,我的QQ:282161073
追答
请问您是如何引入js文件的?tempresponse['data']的具体数据是什么?
系统004
2016-03-04 · TA获得超过3254个赞
知道大有可为答主
回答量:1326
采纳率:68%
帮助的人:1142万
展开全部
解决办法:将HTML元素动态添加到页面上后,重新调用一下轮播图开始的Js方法即可。因为页面onload的时候,轮播js代码执行过一次,那个时候这些HTML还没有在页面结构中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式