
jquery 动态添加html元素后 无法继续触发 50
点击<li>标签后取得数组自动添加新的<li>,可新添加的就无法继续触发li元素了.html页面<divid="miaoshu"><li>123</li></div>JQ...
点击<li>标签后取得数组自动添加新的<li>,可新添加的就无法继续触发li元素了.
html页面
<div id="miaoshu">
<li>123</li>
</div>
JQ:
$("li").click(function(){
if (i==pzwj.wt) {
//相等证明所有问题结束,开始显示结果
alert("ok");
} else{
i=i+1;
//alert(i);
$.each(datat, function(p,connt) {
if (connt.fid==i) {
if (pzwj.lx==0) {
$("h2").html(connt.wtms);
$("#miaoshu").append("<li id='"+connt.sz+"'>"+connt.content+"</li>");
} else{
//$("#miaoshu").append("<p>"+connt.content+"</p>");
};
};
});
}
});
想实现:点击《li》附加新的<li>,点击新的《li》继续触发添加
我想实现的是
1、点击<li>元素删除原有的<li>元素
2、然后通过each循环附加新的<li>
3、循环1、2,点击删除,添加新的
就类似于考试题,学生选择了答案后直接显示下一道题。
现在主要的问题是,在第2部附加了新的<li>后,再点击<li>时不能触发第1部。
刚查了下说动态添加的元素要用ON(click)来处理,但我试了on还是不行··· 展开
html页面
<div id="miaoshu">
<li>123</li>
</div>
JQ:
$("li").click(function(){
if (i==pzwj.wt) {
//相等证明所有问题结束,开始显示结果
alert("ok");
} else{
i=i+1;
//alert(i);
$.each(datat, function(p,connt) {
if (connt.fid==i) {
if (pzwj.lx==0) {
$("h2").html(connt.wtms);
$("#miaoshu").append("<li id='"+connt.sz+"'>"+connt.content+"</li>");
} else{
//$("#miaoshu").append("<p>"+connt.content+"</p>");
};
};
});
}
});
想实现:点击《li》附加新的<li>,点击新的《li》继续触发添加
我想实现的是
1、点击<li>元素删除原有的<li>元素
2、然后通过each循环附加新的<li>
3、循环1、2,点击删除,添加新的
就类似于考试题,学生选择了答案后直接显示下一道题。
现在主要的问题是,在第2部附加了新的<li>后,再点击<li>时不能触发第1部。
刚查了下说动态添加的元素要用ON(click)来处理,但我试了on还是不行··· 展开
1个回答
展开全部
你的这个分两种情况 1、你的新数据是累加在旧数据上的 2、你的新数据要覆盖原来的数据 两种类型都给你写一下吧,解决如下: <!DOCTYPE HTML><html><head> <title>Page Title</title> </head><body> <!-- 点击累加数据的时候,原来的 1 和 2 等都不删除 --> <dl id="dl1"> <dd>1</dd> <dd>2</dd> <dt><a href="javascript:">累加数据</a></dt> </dl> <!-- 点击覆盖的时候,原来的所有数据要删除 --> <dl id="dl2"> <dd>1</dd> <dd>2</dd> <dt><a href="javascript:">新数据覆盖旧数据</a></dt> </dl></body></html><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script><script type="text/javascript"> var i = 2; // 绑定两个点击方法 $("#dl1 a").click(function() { AjaxGetData1(); }); $("#dl2 a").click(function() { AjaxGetData2(); }); // 模拟 ajax 获取数据,这里我就随便写了一个,用循环生成的了 // 数据累加 function AjaxGetData1() { var data = "<dd>" + (i + 1) + "</dd><dd>" + (i + 2) + "</dd>"; i = i + 2; // 直接把 ajax 获取的数据,加到 id="dl1" 下的 dt 之前(before) $("#dl1 dt:eq(0)").before($(data)); }; // 数据覆盖 function AjaxGetData2() { var data = "<dd>" + (i + 1) + "</dd><dd>" + (i + 2) + "</dd>"; i = i + 2; // 先删除 id="dl2" 下的所有 dd,然后再把新获取的 data 加到 id="dl2" 的 dt 之前 $("#dl2 dd").remove(); $("#dl2 dt:eq(0)").before($(data)); };</script>
追问
谢谢你的回答
我想实现的是
1、点击元素删除原有的元素
2、然后通过each循环附加新的
3、循环1、2,点击删除,添加新的
就类似于考试题,学生选择了答案后直接显示下一道题。
现在主要的问题是,在第2部附加了新的后,再点击时不能触发第1部。
刚查了下说动态添加的元素要用ON(click)来处理,但我试了on还是不行···有点晕了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |