2012-01-17 9 views
0

Мне нужно динамически добавлять элементы div вокруг, а затем запустить второй бит, чтобы заставить элемент вращаться.jQuery как заказать jquery для динамического добавления div, затем запустить второй вызов

До сих пор я могу добавить div, но вторая часть не загружается, как нужно.

<div id="ContentFeed"> 
<div class="newsItem">Text</div> 
<div class="newsItem">Text</div> 
<div class="newsItem">Text</div> 
<div class="newsItem">Text</div> 
<div class="newsItem">Text</div> 
</div> 

<script>$('#ContentFeed .newsItem').wrapAll('<div id="slider" />');</script> 


    <div id="ContentFeed"> 
    <div id="slider"> 
     <div class="newsItem">Text</div> 
     <div class="newsItem">Text</div> 
     <div class="newsItem">Text</div> 
     <div class="newsItem">Text</div> 
     <div class="newsItem">Text</div> 
    </div> 
    </div> 

<script> 
$(function(){ 
    $('#slider').bxSlider({ 
     auto: false, 
     displaySlideQty: 6, 
     moveSlideQty: 6, 
     pagerType: short, 
     pager: true 
    }); 
}); 
</script> 

Любая идея, как получить вторую часть, чтобы увидеть динамически добавленный div?

ответ

1

Возможно, вы пытаетесь добавить динамический DIV слишком рано, попробуйте обертывание первого битого JQuery код в том же обработчике document.ready события:

$(function(){ 
    $('#ContentFeed .newsItem').wrapAll('<div id="slider" />'); 
    $('#slider').bxSlider({ 
     auto   : false, 
     displaySlideQty : 6, 
     moveSlideQty : 6, 
     pagerType  : short, 
     pager   : true 
    }); 
}); 

Вы можете проверить, если это вопрос, осматривая DOM чтобы увидеть, действительно ли элемент #slider добавлен в DOM.

+0

Я попробовал, что он не работает – Ashlee

+0

@Ashlee Там может быть другая ошибка, которая блокирует выполнение, так как в изолированном случае это работает. Вот демо: http://jsfiddle.net/JZLEy/. Можете ли вы опубликовать ссылку на сообщение об ошибке? – Jasper

+0

Посмотрев на это снова, я понял, что я назвал неправильный предмет. Сейчас он работает! Спасибо – Ashlee

0

попробовать использовать метод .on

что-то вроде $(document).on("ready", function(){ your slider code... и, вероятно, оберните другой трески в это тоже.

прочитать об этом здесь

http://api.jquery.com/on/

+0

'.on()' - новый способ привязки событий в jQuery 1.7, но '$ (document) .on (" ready ", function() {/ * code here * /});' это то же самое as: '$ (function() {/ * code here * /});' – Jasper

+0

Можете ли вы уточнить, что я не понимаю, как это можно использовать после прочтения ссылки, которую вы дали. – Ashlee

+0

hmm. Я все еще немного привык к использованию функции live, но это было просто устарело. Тогда Эшли Джасперс. Это должен быть порядок вашего кода. это ваши ошибки в консоли? – Rooster