ホームページ >バックエンド開発 >PHPチュートリアル >ajax によって返されたデータは、最初にロードされた JS を実行しなくなりました。どう変更すればよいですか?
第 1 レベルの列 1 をクリックすると、87464089b023c10698638ebd7b9dec0c第 1 レベルの列 182e295699cff932a4d4dabba39074c35 は次のようになります: d9e9a7f4d2855053ed355b4542dbdbd8 1dd49a007b96184fd1c513cf54ac0c579,
同時に: id="xlm2" の li は、第 2 レベルの列を表示できます: 87464089b023c10698638ebd7b9dec0c第 2 レベルの列 182e295699cff932a4d4dabba39074c35、そして第 2 レベルの列をクリックすると、87464089b023c10698638ebd7b9dec0cセカンダリ列 182e295699cff932a4d4dabba39074c35 が次のように変更されます: d9e9a7f4d2855053ed355b4542dbdbd8セカンダリ列 182e295699cff932a4d4dabba39074c35は正しいですが、効果はありません。 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"); }}
<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>
$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 () {
ああ、以上です、ありがとうございます、大丈夫です、答えは速くて正確で、とても感謝しています
!