JQuery .load () Javascript проблема - PullRequest
0 голосов
/ 14 марта 2012

Я новичок в JQuery, и у меня есть следующая проблема:

Исходный файл:

function handleDropEvent( event, ui )
{
    var draggable = ui.draggable;

    switch (draggable.attr('id'))
    {
        case "artOfBeing":
            alert("Life is a bunch of pointless moments.");
            break;

        case "perfectAndroid":
            $('#dataFrame').load('android/androidConfessions.html #androidData');
            break;
    }

    return false;
}

Ajax должен загрузить следующий файл, но он отображает только содержимое <div id="androidTip">, а Javascript полностью игнорируется! Как я могу это исправить, пожалуйста?

<div id="androidData">
    <div id="androidVideo" style="width:640px; height:360px; background-color:#25283c; margin-left:70px; margin-top:0px;">
    </div>

    <script type="text/javascript">
        FlashReplace.replace("androidVideo", "thoughtOfYou/thought.swf", "flash-element-id", 640, 360, 10);
    </script>

    <div id="androidTip">
        <div><span style="font-weight:bold">"Android"</span> - An alien female incapable of breeding... Even then love gets old and dies.
             <div id="xClose" style="float:right; margin-left:5px; cursor:pointer;">x</div>
        </div>
    </div>
</div>

Большое спасибо.

Ответы [ 3 ]

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

Я не думаю, что код JS в вашем html-файле будет вызываться при добавлении в ваш документ. Вам необходимо вызвать функцию JS из обратного вызова функции загрузки.

Что-то вроде:

$('#dataFrame').load('android/androidConfessions.html #androidData', function() {
    FlashReplace.replace("androidVideo", "thoughtOfYou/thought.swf", "flash-element-id", 640, 360, 10);

});
0 голосов
/ 14 марта 2012

При вызове .load () с использованием URL без суффиксного выражения селектора содержимое передается в .html () до удаления сценариев. Это выполняет блоки скрипта до того, как они будут отброшены. Если .load () вызывается с выражением селектора, добавленным к URL, однако, сценарии удаляются до обновления DOM и, следовательно, не выполняются. Пример обоих случаев можно увидеть ниже:

Здесь любой JavaScript, загруженный в #a как часть документа, будет успешно выполнен.

$('#a').load('article.html');

Однако в следующем случае блоки скриптов в документе, загружаемом в #b, удаляются и не выполняются:

$('#b').load('article.html #target');
0 голосов
/ 14 марта 2012

Запустите JavaScript как обратный вызов успешной загрузки, а не пытайтесь вставить его с помощью JavaScript.Как у вас сейчас, JavaScript никогда не запускается, просто вывод в DOM.

Пример:

$('#result').load('android/androidConfessions.html #androidData', function() {
    FlashReplace.replace("androidVideo", "thoughtOfYou/thought.swf", "flash-element-id", 640, 360, 10);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...