Доступ к основному javascript после загрузки jQuery - PullRequest
0 голосов
/ 20 марта 2012

Я ищу способ динамически загружать страницу (страницу A) (которую я также создаю, а не внешнюю страницу в Интернете) на существующую страницу (страницу B). Цель состоит в том, чтобы повлиять на поведение страницы A в Javascript / jquery, используемом на странице B. Пример: когда нажимается кнопка на странице A, я хочу, чтобы Javascript на странице B реагировал на это.

Я пытался сделать это с помощью функции jQuery $ (). Load (), но это не позволяет мне вызывать javascript страницы B со страницы A.

Конкретный код: моя страница B содержит это:

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({ });
});

И у меня есть функция, которая добавляет новую вкладку в карусель и загружает содержимое со страницы (страницы A) в эту вкладку.

$('.ref').click(function() {
        var newTabId = jQuery('#mycarousel').jcarousel('size') + 1;
        carousel
                .add(
                        newTabId,
                        "<li style='width: 50%;'><div id='tab" + newTabId + "' style='height: auto;'></div></li>");
        // load content
        $("#tab" + newTabId).load("/relativepath/" + $(this).attr('id'));
    });

Это работает для статического содержимого (поэтому, когда у меня есть статические вкладки в карусели). Теперь я хочу, чтобы это также работало для вкладок, которые добавляются динамически. Пример: Этап 1: [вкладка 1] [вкладка 2] Я нажимаю кнопку на вкладке 1, создается новая вкладка и содержимое загружается из / a /lative / path

Pase 2: [tab 1] [tab 2] [tab 3] Я нажимаю на кнопку на вкладке 3, и необходимо добавить новую вкладку, и содержимое с другого относительного пути должно быть загружено в карусель.

Надеюсь, я прояснил свои вопросы:)

1 Ответ

0 голосов
/ 20 марта 2012

Вам нужен метод ".on ()" ... Каждый раз, когда я вижу AJAX и обязательный вопрос, обычно это ответ.

$('body').on("click", '.ref', function() {
    var newTabId = jQuery('#mycarousel').jcarousel('size') + 1;
    carousel.add(newTabId,
        "<li style='width: 50%;'><div id='tab" + newTabId + "' style='height: auto;'></div></li>");
    // load content
    $("#tab" + newTabId).load("/relativepath/" + $(this).attr('id'));
});

Исходя из вашего вопроса, яЯ не уверен, что это решит вашу проблему, но вы заметите, что при использовании «.on ()» вместо «.click ()» он просматривает начальный элемент селектора для «щелчка» по «.ref» независимо от того,если элемент существует при разборе javascript / jQuery или после добавления в DOM элемента .ref.

...