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