html () удаляет теги скрипта в вызове ajax fancybox (jQuery) - PullRequest
1 голос
/ 03 декабря 2010

Моя проблема очень похожа на эти:

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

Есть идеи, как это решить?

Ура,Николас.

РЕДАКТИРОВАТЬ: пример кода, полученного с помощью 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>

1 Ответ

1 голос
/ 03 декабря 2010

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

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

Надеюсь, это поможет.

Bob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...