2013-10-26 4 views
0

В конструкции ниже:функция JQuery создает цикл

<div class="hero"> 

    <div class="niro"> 
     <div class="piro"> My </div> 
     <div class="piro"> Awesome </div> 
     <div class="piro"> List </div> 
    </div> 

    <div class="zero"> 
     <a href="#" class="colorbox-load"> Clicking here pops up ColorBox </a> 
    </div> 
</div> 

В JQuery, я хочу чтобы обернуть все piro класс, так что я сделал что-то вроде

$('.piro').wrapAll('<div class="piro-extended"> </div>'); 

При загрузке страницы для в первый раз, код выхода:

<div class="hero"> 

    <div class="niro"> 
     <div class="piro-extended"> 
      <div class="piro"> My </div> 
      <div class="piro"> Awesome </div> 
      <div class="piro"> List </div> 
     </div> 
    </div> 

    <div class="zero"> 
     <a href="#" class="colorbox-load"> Clicking here pops up ColorBox </a> 
    </div> 
</div> 

Но когда я нажимаю ссылку colorbox и после clo петь модальность, код же странице результатов в wrapAll() цикле, как:

<div class="hero"> 

    <div class="niro"> 
     <div class="piro-extended"> 
      <div class="piro-extended"> 
       <div class="piro-extended"> 
        <div class="piro"> My </div> 
        <div class="piro"> Awesome </div> 
        <div class="piro"> List </div> 
       </div> 
      </div> 
     </div> 
    </div> 

    <div class="zero"> 
     <a href="#" class="colorbox-load"> Clicking here pops up ColorBox </a> 
    </div> 
</div> 

как мне избавиться от этого цикла?

+0

Try '$ (документ) .ready (функция() {.. $ ('Niro ') дети() wrapAll ('

');}) ; ' –

+0

Дополнительная информация необходима. Http://jsfiddle.net/yzT8n/1/ – Musa

ответ

0

Как насчет добавить условие?

if($('.piro-extended').length == 0) { 
    $('.piro').wrapAll('<div class="piro-extended"> </div>'); 
} 
+0

спасибо, человек .... он ест мой мозг .... Я сначала тестировал, как если бы' $ (.piro) .closest() .length === 0', то только 'wrapAll()', но он не работал. Возможно, моя логика была неправильной, я пытался проверить родителя, но проверка непосредственно с __classname__ была идеальным решением. Еще раз спасибо. –

0

Попробуйте это:

$('.piro').wrapAll('<div class="piro-extended" />'); 
Смежные вопросы