我想在fancybox中更改div的内容,我在我的html页面中有这个:
fancybox的内联div:
<div id="user_should_subscribe" style="display:none;">
<div id="test">hi</div>
</div>
需要在加载页面时自动显示fancybox:
<script type="text/javascript">
<!--
$("#user_should_subscribe").fancybox({
content: $("#user_should_subscribe").html()
}).trigger("click");
// -->
</script>
到目前为止一切顺利。显示fancybox但如果我尝试更改div#text的内容,则内容不会更改。在fancybox里面我有一个ajax表单,当请求完成后我触发
$("#test").html('new')
但没有任何改变,但如果我尝试以这种方式检查内容
$("#test").html('new')
alert($("#test").html('new'))
我得到:新所以我认为问题与fancybox有关,因为div #test内容没有正确呈现,任何提示? 谢谢
答案 0 :(得分:3)
您没有打开ID为“user_should_subscribe”的元素,但您正在创建并打开其克隆(使用.html()方法),因此您现在拥有两个具有相同ID的相同元素。这就是为什么以后你的代码只会改变第一个代码的原因。
因此,您需要将元素打开为“内联”。例如(这将打开一次) -
<script type="text/javascript">
$(document).ready(function() {
$.fancybox.open({
href : "#user_should_subscribe",
type : 'inline'
});
});
</script>