html()在fancybox(jQuery)ajax调用中删除脚本标记

时间:2010-12-03 10:04:53

标签: jquery html ajax tags fancybox

我的问题与这些问题非常相似:

但这是一个特例,它们都不适用于我 我正在使用fancybox(1.3.4)jQuery插件来显示返回HTML字符串的ajax调用的结果。 HTML字符串包含带有jQuery行的ajax表单,由于html()函数而无法输出。我尝试用innerHTML替换它(实际上与html()相同)或者用其他人替换标签然后更新它但没有任何效果。
如果你想知道这发生的确切位置它是fancybox JS文件中的行265

任何想法如何解决这个问题?


干杯,
尼古拉斯。


修改 由包含<script>标记的ajax重新获取的代码示例:

<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 个答案:

答案 0 :(得分:1)

我认为您可能需要单独添加脚本和html内容。您可以通过线路发送由令牌加入的标记和脚本。通过客户端上的javascript将它们拆分。然后将html添加到fancybox元素中。可能需要在fancybox元素之外添加脚本。以下是如何将html和脚本添加到同一元素中的示例:

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

希望这有帮助。

鲍勃