我的问题与这些问题非常相似:
但这是一个特例,它们都不适用于我
我正在使用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>
答案 0 :(得分:1)
我认为您可能需要单独添加脚本和html内容。您可以通过线路发送由令牌加入的标记和脚本。通过客户端上的javascript将它们拆分。然后将html添加到fancybox元素中。可能需要在fancybox元素之外添加脚本。以下是如何将html和脚本添加到同一元素中的示例:
http://jsbin.com/otage3/2/edit
希望这有帮助。
鲍勃