функция jquery работает только в консоли

#javascript #jquery #ajax #twitter-bootstrap

#javascript #jquery ( jquery ) #аякс #twitter-bootstrap

Вопрос:

У меня есть скрипт, который должен ждать запуска загруженного dom, но, похоже, он не ждет. Я думаю, проблема может заключаться в том, что я использую вкладки начальной загрузки, а содержимое на самом деле еще не находится в dom.

Однако это работает, если я вставляю jQuery в консоль. Есть ли способ исправить это с помощью jQuery или мне нужна мощная библиотека ajax?

html / bootstrap

  /*@include('blocks.rotators.user-comments') loads in this*/

 <div class="tab-pane fade" id="activityDetails">
   <div class="comments-holder holder"></div>

  <!-- item container -->
   <ul id="comments-container" class="default-container quad-scroller">
       <li>item</li>
   </ul>    
</div>
 

JS

 /* when document is ready */
    $(function () {
            /*
             * initiate the plugin without buttons and numeration
             * setting midRange to 15 to prevent the breaks "..."
             */
            $("div.comments-holder").jPages({
                    containerID: "comments-container",
                    first: false,
                    previous: "←",
                    next: "→",
                    last: false,
                    midRange: 15,
                    perPage: 4,
                    links: "blank"
            });
    });
 

Комментарии:

1. Как HTML, который вы опубликовали, добавлен в DOM? Вы уверены, что DOM ready — это то, что вам нужно? Вы упоминаете, что вам нужен ajax … в вашем вопросе действительно недостаточно информации, чтобы дать жизнеспособный ответ.

2. когда я добавляю (), я получаю неперехваченный синтаксический ошибка: неожиданный токен). Я также пробовал ();

3. это избавило от этой ошибки, но все еще не работает }); }());

4. @David он добавляется через вкладки начальной загрузки..

5. tab-pane Добавляется ли она динамически или она уже есть при загрузке документа?

Ответ №1:

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

 $('a[data-toggle="tab"]').on('shown.bs.tab', function(event) {

     // Put your code

});
 

Селектор — это кнопка, по которой нажимается доступ к вашей вкладке. Это событие гарантирует вам, что вкладка загружена и видна.

Если вы не беспокоитесь о том, что она видна, и хотите получить к ней доступ раньше, вы можете вместо этого использовать событие начальной show.bs.tab загрузки, которое запускается, как только вы нажимаете на вкладку.