Как загрузить скрипт с помощью jquery.load ()? - PullRequest
0 голосов
/ 02 апреля 2011

У меня есть вопрос.

В моем файле content.html у меня есть скрипт.Когда загружаете это с помощью функции load() jQuery, страница отображается, но скрипт не работает.Я думаю, что это из-за селектора.

Как я могу решить это?

РЕДАКТИРОВАТЬ:

$(document).ready(function(){
$('#content').load('content.html #toLoad', function(){});
})

Спасибо

1 Ответ

5 голосов
/ 02 апреля 2011

Когда вы говорите «скрипт не работает», вы имеете в виду, что на странице, загружаемой через ajax, есть javascript?

Это не сработает, по крайней мере, напрямую.

У вас есть два варианта.Извлеките сценарий из содержимого, которое вы загрузили, и используйте eval для его запуска.

Лучший способ - использовать $.getScript для загрузки (и выполнения) JavaScript.Если вы хотите связать свой javascript с загруженным вами HTML-кодом, вам необходимо соблюдать некоторые правила для идентификации сценария.Например, вы можете включить тег в динамически загружаемый html:

<span style="display:none;" id="script">/scripts/somescript.js</span>

Затем найдите диапазон с id = "script" при загрузке контента, если вы его найдете,используйте $.getScript для загрузки идентифицируемого им скрипта.

пример ...

$.load('content.html #toLoad', function(data){
    var $script = $(data).find('span[id=script]');
    if ($script.length) {
        $.getScript($script.html());
        // remove the span tag -- no need to render it
        $script.remove();
    }
    $('#content').html(data);
});
...