0

私は順序付けられたリストを持っています。基本的にすべての子要素は、デフォルトで非表示になっているオーバーレイと表示とリストを呼び出すことになっています。私は信じているすべてのことを正しく行いましたが、ボタンをクリックすると、同じ非表示の div が何度も表示されます。クリックしているボタンの子ではなく、jsFiddle http://www.jsfiddle.net/aR7va/1/を作成しました。

4

1 に答える 1

0

ここで更新されたコードを参照してください: http://jsfiddle.net/aR7va/6/

オリジナルの問題は、$('.user-comment-list')4 つのコンテンツ ブロックすべてを見つけてオーバーレイ コンテナーに追加することだけを検索していたことです。更新されたコードは、要素内のそのクラスのみを検索します。(コメントで提案されているように、A に UL をネストすることは有効なコードではないため、それを変更することを検討することをお勧めします。) また、毎回 overlay_content_inner を空にする行を追加したか、コンテンツが追加されました。複数のボタンをクリックすると最後まで表示されます。

$('.my-list li .button').click(function(){
    var button = $(this);
    overlay_content_inner.empty();
    overlay.fadeIn(300,function(){
        button.find('.user-comment-list').css({"display":"block"}).appendTo(overlay_content_inner);
    });
});
btn_remove.click(function(){
    overlay.fadeOut(300,function(){});
});

アップデート

コードを再編成し、少し単純化しました。を使用する代わりに.appendTo()に変更しました.html()。これにより、overlay_content_inner 要素の innerHTML が、各リンクの user-comment-list コンテナーにあるものに設定されます。更新されたフィドル: http://jsfiddle.net/aR7va/22/

于 2012-09-10T18:55:32.747 に答える