0

ajaxを介してdivにロードする.phpがあります。この .php 内に、次の表示/非表示<a href>を切り替えるリンクがあります。<p>しかし、jQuery コードを .php 自体に入れると、うまくいきませんでした。そのため、ajax を含む受信 .php に jQuery コードを配置する必要があるかもしれないことに気付きまし<a href><p>。しかし、それは何もしないようです。html は次のとおりです。

echo "<div><a class=\"exp\" href=\"javascript:void(0)\">View explanation: </a>";
echo "<p class=\"pexp\" style=\"display:none;\">";
echo $tfeedback;
echo "</p></div>";

jquery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){ 
$('.exp').on('click', function (e) {
    e.preventDefault(); // stop href()
    $(this).next().toggle();      
});
    });
</script>

$tfeedback は文字列です - 空でないことを確認しました。

4

2 に答える 2

1
Please try this code hope it helps you......

$(document).delegate('.exp','click', function (e) {
    e.preventDefault(); // stop href()
   if($(this).next().css('display')=='block'){
    $(this).next().hide();
}else{
    $(this).next().show();
     }   
});

OR

$(document).on('click', '.exp', function (e) {
    e.preventDefault(); // stop href()
    if($(this).next().css('display')=='block'){
    $(this).next().hide();
}else{
    $(this).next().show();
     }      
});
于 2013-01-02T08:24:19.633 に答える
0

アンカーと段落が AJAX 経由で読み込まれる前に、2 番目のスニペットのコードを実行している可能性があります。この段階では に一致する要素がない.expため、コレクション$('.exp')は空です。

解決策は、すでに存在する祖先に委譲することです。

$(document).on('click', '.exp', function (e) {
    e.preventDefault(); // stop href()
    $(this).next().toggle();      
});
于 2013-01-02T03:32:04.770 に答える