>  기사  >  백엔드 개발  >  ajax返回的数据,不再执行初次载入的JS,应该怎么改,先谢谢了!

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

WBOY
WBOY원래의
2016-06-23 13:29:51985검색

点击一级栏目1后,

一级栏目1
变为:
一级栏目1
,

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

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


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



html:
<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
$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了,回答又快又准又好,非常感谢!谢谢!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.