Выполнение JS в динамически загружаемом контенте - PullRequest
0 голосов
/ 21 сентября 2010

Я начал работать над проектом, который динамически загружает все содержимое различных страниц.
На первый взгляд, это кажется достаточно простым, AJAX-вызов скрипта, который возвращает содержимое, помещенное в DIV. За исключением того, что возвращается не только HTML, но и JS. Я вижу много таких вещей: -

<img src="spacer.gif" height="1" width="1" onload="SOMEJSHERE"/>

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

Некоторый опыт и предложения, пожалуйста?

Lyle

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

Посмотрите на событие jQuery .live () . Он может применять поведения (привязки событий) ко всем текущим и будущим элементам на странице, которые соответствуют указанным селекторам.

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

0 голосов
/ 27 января 2012

В конце я использовал опцию tabs.select из пользовательского интерфейса JQuery (которую мы использовали для страниц с ajaxed) и при необходимости выполнил соответствующий JS.

0 голосов
/ 21 сентября 2010

эй, я использую "eval" для динамического выполнения js.

, например

<script>
var strjs = 'function execute(){alert("foobaring");} execute();';

eval(strjs);

</script>
...