Клонировать селектор + все его дочерние элементы в jQuery? - PullRequest
2 голосов
/ 19 апреля 2010

У меня проблемы с настройкой следующего скрипта JQuery для правильной работы - он работает следующим образом:

1) Скрыть содержимое под каждым заголовком

2) После нажатия на заголовок,замените "# first-post" заголовком + скрытое содержимое под заголовком.

Мне кажется, что я могу получить только скрипт для клонирования самого заголовка в # first-post, а не заголовок + содержимоепод этим.Есть идеи почему?

<HTML>
<HEAD>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</HEAD>
<script>
$(document).ready(
function(){ 
$('.title').siblings().hide();
$('.title').click( function() {
$('#first-post').replaceWith($(this).closest(".comment").clone().attr('id','first-post'));
$('html, body').animate({scrollTop:0}, 'fast');
return false;
});
});
</script>
<BODY>
<div id="first-post"> 
  <div class="content"><p>This is a test discussion topic</p> </div> 
</div>
<div class="comment"> 
<h2 class="title"><a href="#1">1st Post</a></h2> 
  <div class="content">
    <p>this is 1st reply to the original post</p> 
  </div> 
  <div class="test">1st post second line</div>
  </div>
<div class="comment"> 
<h2 class="title"><a href="#2">2nd Post</a></h2> 
  <div class="content"> 
    <p>this is 2nd reply to the original post</p> 
      </div> 
  <div class="test">2nd post second line</div>
  </div> 
</div>
<div class="comment"> 
<h2 class="title"><a href="#3">3rd Post</a></h2> 
  <div class="content"> 
    <p>this is 3rd reply to the original post</p> 
  </div> 
  <div class="test">3rd post second line</div>
    </div> 

</div>

</BODY>
</HTML>

Ответы [ 2 ]

2 голосов
/ 19 апреля 2010

Вы клонируете скрытые элементы, поэтому копии также скрыты. Добавьте туда звонок show().

1 голос
/ 19 апреля 2010

Вам также нужно показать скрытые элементы. Обратите внимание, что replaceWith возвращает удаленный элемент, поэтому вам нужно запросить новый элемент "first-post", а затем скрытых потомков при выполнении шоу.

$('.title').click( function() {
    $('#first-post').replaceWith($(this).closest(".comment").clone().attr('id','first-post'));
    $('#first-post').find(':hidden')
                   .show();
    $('html, body').animate({scrollTop:0}, 'fast');
    return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...