fancybox将内容更改为模态窗口

时间:2012-08-21 07:27:19

标签: javascript fancybox

我想在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内容没有正确呈现,任何提示? 谢谢

1 个答案:

答案 0 :(得分:3)

您没有打开ID为“user_should_subscribe”的元素,但您正在创建并打开其克隆(使用.html()方法),因此您现在拥有两个具有相同ID的相同元素。这就是为什么以后你的代码只会改变第一个代码的原因。

因此,您需要将元素打开为“内联”。例如(这将打开一次) -

<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox.open({
            href : "#user_should_subscribe",
            type : 'inline'
        });
    });
</script>