0

我想改变一个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>

到目前为止,一切都很好。显示了幻想框,但如果我尝试更改 div#text 的内容,则内容不会改变。在fancybox里面我有一个ajax表单,当请求完成时我触发

$("#test").html('new')

但没有任何改变,但如果我尝试以这种方式检查内容

$("#test").html('new')
alert($("#test").html('new'))

我得到:所以我认为问题与fancybox有关,因为 div#test 内容未正确呈现,有什么提示吗?谢谢

4

1 回答 1

3

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

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

<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox.open({
            href : "#user_should_subscribe",
            type : 'inline'
        });
    });
</script>
于 2012-08-21T14:16:49.073 回答