0

slideToggleに新しい要素を導入すると、見栄えが良くアクティブになります(デフォルトでは展開されます)が、既存の要素をクリックすると、すべての要素が折りたたまれ、新しいajax要素を展開できません。基本的に、新しいajax要素はslideToggleグループの一部ではありません。これは、要素が導入される前に作成されたためです。トグルをその場で再構築したり、新しい要素を期待どおりに動作させるにはどうすればよいですか?

** jQUERY

$('div.menu_body:eq(0)').show();
$('.acc .head:eq(0)').show().css({color:"#2B6893"});

$(".acc .head").click(function() {  
    $(this).css({color:"#2B6893"}).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
    $(this).siblings().css({color:"#404040"});
});

** Ajax

<script type="text/javascript">
jQuery(document).ready(function() {
    setInterval("showNewFeeds()", 10000);
});
showNewFeeds() {
    $.ajax({
     type: 'POST',
     url: 'feed.php',
     data : {uid : '145', mid: '22', nid: 56'},
     success: function(response) {
       $('#feedNote').html(response).fadeIn('slow');
     },
     error: function (xhr, ajaxOptions, thrownError) {
       //alert(xhr.status);
       //alert(thrownError);
     }
   });
}
</script>";

** HTML

<div class="widget acc" id="feedNote">
  <div class="head"><h5>Header 1</h5></div>
  <div class="menu_body">
    <div>HTML 1</div>
  </div>
  <div class="head"><h5>Header 2</h5></div>
  <div class="menu_body">
    <div>HTML 2</div>
  </div>
</div>
4

1 に答える 1

1

試す :

$(document).on('click', '.acc .head', function() {  
  $(this).css({color:"#2B6893"}).next("div.menu_body").slideToggle(300).siblings("div.menu_body").slideUp("slow");
  $(this).siblings().css({color:"#404040"});
});

それ以外の.click(function(){...})

于 2013-01-22T13:20:50.383 に答える