1

ページにいくつかのdiv要素があります。メインdivでは、リンクがクリックされると、コンテンツはjQueryを使用してAJAX経由でロードされます。これは、メインにないリンクをクリックすると完全に機能しますdiv。しかし、メインdivにAJAXを介してロードされたリンクがある場合、それらは機能しません。理由はわかりません。次に例を示します。

リンクがあります。productsjQueryがロードするコンテンツを認識できるように、クラスを指定しました。したがって、私のリンクは次のようになります。

<a href="javascript:;" class="products">products</a> 

href="javascript:;"にとってhref="#"は機能せず、hrefCSSが機能する必要があるためです。

何が問題になる可能性がありますか?

4

4 に答える 4

4

実際のコードを見なくても推測できますが、多くの場合、ロード時にハンドラーを割り当て、新しい要素がページに追加されたclickときにハンドラーを再割り当てしないため、このような問題は発生しません。div

これを回避するには、次のように委任されたイベント ハンドラーを使用します。

$('#parentDiv').on('click', 'a', function() {
    // do your thing in here
});
于 2012-12-24T12:04:12.697 に答える
1

まあ、あなたが入れているときhref="#"、ページは実際にリロードされ、URL は # 記号で上書きされます。return falseリロードを停止するには、クリックイベントの最後に配置する必要があり、すべて正常に機能します。それ以外の場合はhref、同様に行うことができます。
どのように、あなたが見つける必要があることhref="javascript:return false;"

于 2012-12-24T12:07:42.613 に答える
0

.live を使用したソリューションは私にとってはうまくいきました。

ここに私が今使っているjqueryコードがあります:

これが私のコードです。載せ忘れてすみません!

    <script>
$(document).ready(function() {
    $('.sofas').live('click',function() {
    $('#content-shown , #pics').animate({opacity:0},250,function() {

    $('.content-loading').fadeIn(250, function() {
    $('#navigation_all , #content-shown').css("height","6600px");
    $('#pics').load('content.html #sofas-bild').animate({opacity:1},250);
    $('#content-shown').load('content.html #sofas', function() {
    $('.content-loading').fadeOut(250, function() {

        $('#content-shown').animate({opacity:1},250);

    });
    });
    });
    });
            });
            });


</script>

その前に、.live... の代わりに .click(function() { を取得しました。

于 2012-12-28T11:32:01.917 に答える