2010-12-03 1 views
1

Моего вопрос очень похож на таких:HTML() отрывает тег сценария в FancyBox (JQuery) Ajax вызов

Но это частный случай, и ни один из них работали для меня.
Я использую плагин jQuery fancybox (1.3.4), чтобы отобразить результат вызова ajax, который возвращает строку HTML. Строка HTML содержит ajax-форму с линиями jQuery, которые не выводятся из-за функции html(). Я попробовал заменить его на innerHTML (что на самом деле то же самое, что и html()), или заменить теги другими, а затем обновить его, но ничего не получилось.
Если вы хотите точно знать, где это происходит, это строка 265 в файле fancybox JS.

Любые идеи, как это решить?


Cheers,
Николас.


EDIT: пример кода retreived на AJAX, содержащий <script> тег:

<div class="ddinline"> 
    <form id="form542612422" onsubmit="return false;" update="searchbtn" position="before" method="post" action="/Librariescategories/AJAXGetChildrenList" accept-charset="utf-8"> 
     <div style="display:none;"> 
      <input type="hidden" name="_method" value="POST" /> 
     </div> 
     <script type="text/javascript"> 
     //<![CDATA[ 
     $('#form542612422').bind('submit', function(){ $.ajax({async:true, type:'post', beforeSend:function(request) {$("#filter .ddinline").last().after('<img src="/img/loading.gif" id="catload" alt="" />');}, complete:function(request, json) {$('#searchbtn').before(request.responseText); $("#catload").remove(); createDropDown($("#filter .fulldrop").last());}, data:$('#form542612422').serialize(), url:'/Librariescategories/AJAXGetChildrenList'}) }) 
     //]]> 
     </script> 
     <select name="data[Librariescategories][id]" class="fulldrop" id="LibrariescategoriesId"> 
      <option value="0" selected="selected">select</option> 
      <option value="1">3D Models</option> 
      <option value="259">Imagery</option> 
      <option value="362">Textures</option> 
     </select> 
     <div class="hide"> 
      <input type="submit" value="Submit" /> 
     </div> 
    </form> 
</div> 
+0

Можете ли вы вставить пример кода HTML со сценарием, который вы извлекаете ajax? –

+0

Вопрос отредактирован. – Nicolas

ответ

1

Я думаю, что вам может понадобиться, чтобы добавить скрипт и HTML-то отдельно. Вы можете отправить разметку и скрипт, соединенные токеном по проводу. Разделите их через javascript на клиенте. Затем добавьте html в элемент fancybox. Возможно, скрипт должен быть добавлен за пределы элемента fancybox. Вот пример того, как добавить HTML и сценарий в тот же элемент:

http://jsbin.com/otage3/2/edit

Надеется, что это помогает.

Bob

+0

Привет, Боб, это отличная идея, но на самом деле я использую cakePHP, и JavaScript автоматически создается помощником AJAX в представлении, поэтому я не вижу возможности отделить его от HTML. Более того, я не могу использовать «стандартный» синтаксис для сгенерированного кода, потому что идентификатор формы автоматически генерируется во время вспомогательного кода AJAX. Приветствия. – Nicolas

+0

Или я могу извлечь JS-код через regexp и попытаться вставить его где-нибудь еще в родительский документ. Я не уверен, что это будет возможно, но я попробую. – Nicolas

+0

Ваша идея была хорошая! Я разделил строку на два: один с обычным HTML, а другой с JS, затем я вставляю HTML и добавляю JS в обложку 'fancybox-content' в'

 Смежные вопросы

  • Нет связанных вопросов^_^