2011-01-06 2 views
1

FYI, вот мой код:JQuery нагрузки() проблема с HTML, которые содержат JQuery плагин

[index.html]

<script type="text/javascript" src="js/script.js"></script> 

[script.js]

$(document).ready(function() { 
    $('#buttonEphone').click(function() { 
     $('#apDiv2').load("ePhone.html, #content"); 
    }); 
}); 

" ePhone.html "содержат некоторые эффекты лайтбокса. (Использование кода ниже)

[ePhone.html]

<script type="text/javascript" src="js/prototype.lite.js"></script> 
<script type="text/javascript" src="js/moo.fx.js"></script> 
<script type="text/javascript" src="js/litebox-1.0.js"></script> 

LiteBox плагина также требуется, чтобы добавить onload="initLightbox()" в теге тела ePhone.html.

Из приведенного выше кода я могу загрузить содержимое ePhone.html (#content div) в мой <div> (apDiv2) моего index.html. Однако эффект лайтбокса больше не работает. Я также попытаться загрузить весь HTML вместо только #content:

$('#apDiv2').load('ePhone.html'); 

, но он по-прежнему не работает.

+0

Вы пытались использовать эти сценарии в своем 'index.html'? – Shikiryu

+0

На самом деле, я поместил код в свой script.js. в моем index.html, у меня есть эта строка: Victorgalaxy

+0

Эти три '

0

В браузере Javascript выполняется на определенное событие. При загрузке страницы, загрузке страницы или любых определенных событиях .. так далее ..

Но когда вы пытаетесь загрузить HTML через ajax в какой-то DIV, а в том, что HTML содержит некоторый JS, браузер не будет выполнять этот JS , поскольку этот JS не зарегистрирован в DOM браузера.

Итак, что вы можете сделать, это Храните только HTML в ePhone.html и удалите весь JS-скрипт с этой страницы и сохраните этот JS на index.html. И используйте live() для привязки любых событий, зарегистрированных в ePhone.html.

Это сделает его работу.

Спасибо!

Хуссейн

0

вы можете использовать getScript функции Динамично сценарии нагрузки после jquery.load функции завершена. Пробуйте следующее: