2013-12-11 4 views
0

Имейте проблему здесь, когда я динамически загружаю php-страницу, внешний JS-файл, связанный с этими страницами PHP, похоже, не вступает в силу. В файле HTML есть код JS для вызова функций, файлы JS выполняют всю работу, изменяя определенные теги.Ajax и внешние сценарии JS

HTML-страница загружает файл PHP, который связан с JS-скриптом. Соответствующий код ниже.

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

HTML код для загрузки PHP файл

<script> 
    $(document).ready (function() { 
     $('#test').click(function(event) { 
     $('#content').empty(); 
     $('#content').load('view/search.php'); 
     }) 
    }) 
</script> 

Как JS связан в PHP файл

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

Опять весь код работает при загрузке страницы PHP напрямую.

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

+0

Вы уверены, что путь к 'edit.js' верен? URL-адрес главной страницы будет использоваться в качестве текущего каталога, а не 'view/search.php'. – Jacob

+0

Также см. Http://stackoverflow.com/questions/6036870/jquery-load-strips-script-tags-workaround. – Jacob

+0

Да, все правильно – user3078580

ответ

1

Загрузка HTML, содержащая теги скриптов. Однако имейте в виду, что load просто вставляет ваш контент в DOM. Поэтому, если вы вставили <script src="edit.js"></script>, DOM попытается загрузить edit.js из текущего каталога, а не из каталога загружаемого файла php.

+0

Работал, спасибо :) – user3078580

0

сделать выходной сигнал PHP-файлов содержание edit.js в теге сценария

например

<script> 
    <?php 
     echo file_get_contents('edit.js'); 
    ?> 
</script> 
0

Если я правильно понимаю ваш вопрос, это сработало для меня. Затем файл js загружается при нажатии. Недостатки этого метода заключаются в том, что если его несколько раз щелкнуть, файл будет загружаться каждый раз, загромождая вашу DOM, что может привести к медленному сайту.

<script> 
    $(document).ready (function() { 
     $('#test').click(function(event) { 
     $('#content').empty(); 
     $('#content').load('view/search.php', function() { 
       $.getScript(path+to+script); 
     }); 
     }) 
    }) 
</script> 
Смежные вопросы