Кто-нибудь знает, как обойти jquery .load (), убрав теги скрипта, загруженные из внешнего контента?
Есть много документов о том, что это происходит, но после 4 часов поиска в сети я не могу найти обходной путь?
Я загружаю динамически сгенерированные div - как на странице результатов поиска - и мне нужно привязать .click () к элементу внутри каждого динамически сгенерированного div. У меня есть php-файл, который выполняет генерацию html и возвращает все html в виде строки, однако я не могу связать jquery .click (), поскольку теги сценария, содержащие функцию jquery, удаляются.
вот код, который загружает внешний контент, вызывая файл php ...
$("#titles_wrap").load("m_scripts/m_php/titles_loader.php", function(){
$..some code
});
и вот цикл из php-файла, который генерирует div (это прекрасно работает) ...
$tag1='<script type="text/javascript">';
$tag2='</script>';
while($result_array = mysql_fetch_array($result)) {
if($i2<=($titles_total)){
$_SESSION['titles_string'] .= '<li id="listItem_'.$i2.'">
<div id="titles_list_item">
<div id="titles_list_image_box" style="background-image: url(../../images/thumbs_test/'.$result_array[0].'); background-repeat: no-repeat; ">'.($i2+1).'</div>
<div id="title_php_loader"></div>
<div id="title_info_wrap">
<div id="title_current"><span class="title_current_grey" >current title: </span><br>'.$result_array[1].'
</div>
<div id="title_form_wrap">
<span class="title_current_grey" >new title: </span><br><input name="title_input_'.$i2.'" id="title_input_'.$i2.'" type="text" class="title_input"></input>
<div id="title_send" class="title_send_'.$i2.'">GO</div>
</div>
</div>
'.$tag1.'
$(".title_send_'.$i2.'").click(function(){$("#title_php_loader").load("m_scripts/m_php/title_sender.php")})
'.$tag2.'
</div>
</li>';
$i2++;
}
}
Извините, если этот второй блок кода немного перегружен - дайте мне знать, будет ли более полезным упрощенный отрывок. Тем не менее, вы можете увидеть на восьмой из последней строки кода php функцию jquery, которая должна записываться в каждый элемент div с динамически назначаемым селектором.
Конечно, могут быть и другие ошибки в коде, однако я не смогу протестировать его, пока не получу .load (), чтобы прекратить его уничтожать!
Если кто-то нашел решение этой проблемы - или даже обходной путь ограниченной благодати - блестящий!
Заранее спасибо,
Приветствия
Scott
РЕДАКТИРОВАТЬ - РЕДАКТИРОВАТЬ - РЕДАКТИРОВАТЬ - РЕДАКТИРОВАТЬ - РЕДАКТИРОВАТЬ - РЕДАКТИРОВАТЬ - РЕДАКТИРОВАТЬ
@T.J. Crowder
@ Фруг
Спасибо за вашу помощь!
Я только что внимательно посмотрел на страницы, включенные в вашу демонстрацию, и да, я вижу, у вас это работает. Кажется удивительным, потому что они есть - те теги сценария, и есть так много людей, которые не могут заставить его работать - к сожалению, я один из них!
Единственные различия, которые я вижу между вашей демонстрацией и ситуацией с моим кодом, были
1) нет объявления типа в открывающем теге скрипта,
2) вы загружаете страницу с тегами скрипта как часть DOM, в то время как я загружал вывод php-строки (я действительно не думаю, что это важно, а? приходит к тому же, нет?)
3), ваш вызов .load получал целую страницу, а мой возвращал только элементы. С тех пор я изменил выходную строку, чтобы включить все, и теги, но grrrrrr ... Я до сих пор не могу получить теги проклятых скриптов, которые будут отображаться в DOM.
Есть предложения? Есть грузы, о которых я не знаю, поэтому может быть что угодно! спасибо S