Использование Javascript в элементе с внедренным HTML в jQuery - PullRequest
1 голос
/ 04 июня 2009

Я пытаюсь сослаться на некоторые файлы javascript в удаленно загруженном (внедренном) HTML-файле с помощью функции jQuery .load (). Файлы javascript, которые я пытаюсь использовать в загруженном HTML-файле, уже включены в родительскую HTML-страницу загруженного HTML.

Первоначально я думал, что создание ссылок на эти файлы в загруженном HTML будет работать нормально, поскольку оно включено на страницу, но, похоже, не работает.

Может кто-нибудь сказать мне, как я могу использовать javascript с моим HTML-файлом?

Ответы [ 4 ]

1 голос
/ 04 июня 2009

Если я правильно понимаю, похоже, вам нужно использовать getScript() - загружает и выполняет локальный файл JavaScript с использованием HTTP-запроса GET.

$.getScript( url, [callback] ) 
0 голосов
/ 16 июля 2010

Я считаю, что вы ищете .live ()

.live () позволяет вам «прикрепить обработчик к событию для всех элементов, которые соответствуют текущему селектору, сейчас или в будущем».

Например:

$(".clickme").click(function(){
  $(this).fadeOut();
}

Этот код не будет работать ни с одним элементом, который был вставлен на страницу с помощью .load () или .get ()

Но если вы сделаете это:

$(".clickme").live('click', function(){
  $(this).fadeOut();
}

... он будет работать даже с элементами, которые были вставлены в макет страницы с помощью javascript.

Больше информации на jQuery AP

0 голосов
/ 08 июня 2009
  1. Если test1.htm содержит:

    $ (документ) .ready (function () { $ ('. main'). load ('test2.htm', function () { $ ('. result'). text ('страница была найдена'); }); });

  2. и test2.html содержит:

в заголовке документа.

  1. exscript.js содержит:

    предупреждение ( 'привет');

Если вы загрузите test1.htm, вы будете предупреждены привет. До свидания! :)

0 голосов
/ 04 июня 2009

Если элемент script является частью загруженного html, вы можете просто добавить его в тело, и он будет работать.

Пример:

$.ajax({
    //...
    //...
    success: function(response) {
        // assuming response is a full HTML page
        var r = $(response);
        // append your content
        $("#someContainer").append($("#someContent", r));
        // append the scripts
        $("body").append($("script", r));
    }
    //...
    //...
});

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

...