0

ファンシーボックス内の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のコンテンツを変更しようとしても、コンテンツは変更されません。ファンシーボックスの中にはajaxフォームがあり、リクエストが完了するとトリガーします

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

何も変わりませんが、このように内容を確認しようとすると

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

新しいので、div#testのコンテンツが正しくレンダリングされないため、問題はfancyboxに関連していると思います。ヒントはありますか?ありがとうございました

4

1 に答える 1

3

IDが「user_should_subscribe」の要素を開いていませんが、そのクローンを作成して開いているため(.html()メソッドを使用)、同じIDを持つ2つの同じ要素があります。そのため、後でコードを変更するのは最初のコードだけです。

したがって、要素を「インライン」として開く必要があります。たとえば(これは一度開きます)-

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