当前位置:Gxlcms > PHP教程 > ajax返回的数据,不再执行初次载入的JS,应该怎么改,先谢谢了!

ajax返回的数据,不再执行初次载入的JS,应该怎么改,先谢谢了!

时间:2021-07-01 10:21:17 帮助过:49人阅读

点击一级栏目1后,
一级栏目1
变为:
一级栏目1
,

同时:id="xlm2"的li能显示二级栏目:
二级栏目1
,再点击二级栏目时,
二级栏目1
应该变为变为:
二级栏目1
才对,但是没有效果,dd没有加上样式 class="selected",

应该是$(document).ready(function()没有被执行,应该怎么改?先谢谢兄弟了!


JS:
  1. $(document).ready(function(){ $("#select1 dd").click(function () { bid=$(this).attr("id"); $(this).addClass("selected").siblings().removeClass("selected");
  2. $.ajax({ type:"GET", url:"t.php", data:"cid="+bid, cache:false, success:function(data){
  3. $("#xlm2").show(); $("#xlm2").html("<dl id="select2">"+data+"</dl>"); } }); $("#select2 dd").click(function () { $(this).addClass("selected").siblings().removeClass("selected"); }}



html:
  1. <li class="list"> <dl id="select1"> <dd id="1">一级栏目1</dd> <dd id="2">一级栏目2</dd> <dd id="3">一级栏目3</dd> <dd id="4">一级栏目4</dd> <dd id="5">一级栏目5</dd> </dl></li><li class="list" id="xlm2" style="display:none;"></li>



t.php
  1. $cid = $_GET['cid'];$mesql=$empire->query("select * from class where classid=".$cid );while($r=$empire->fetch($mesql)){ $classname.= "<dd id=".$r[classid]." class="">".$r[classname]."</dd>";}echo $classname;



回复讨论(解决方案)

如果你的 jQuery 是 1.8.3 及以下
$("#select2 dd").live('click', function () {

如果的的 jquery 是 1.8.0 及以上
$("#select2 dd").on('click', function () {
这个写法要求 #select2 dd 是已存在的,否则应写作
$(document).on('click', "#select2 dd", function () {

哦,原来是这样,非常感谢,已经OK了,回答又快又准又好,非常感谢!谢谢!

人气教程排行