0

リスト ビューでリンク (ここをクリック) をクリックして、ダイアログ ボックスをポップオーバーしようとしています。ポップオーバーは正常に機能しますが、[ここをクリック] リンクのいずれかをクリックすると、リストの最初のデータのタイトルが表示されます。各データ項目のリンクをクリックしたときに対応するタイトルを表示したい。インデックス.php

    <?php $this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$dataProvider,
        'itemView'=>'_view',
        'template'=>"{items}\n{pager}",
)); ?>

    <script>
        $(document).ready(function () {
          $("#closebtn").click(function () {
            $("#dlg").hide('800', "swing", function () { $("#bkg").fadeOut("500"); });
          });
          $(".opn").click(function () {
            if (document.getElementById('bkg').style.visibility == 'hidden') {
              document.getElementById('bkg').style.visibility = '';
              $("#bkg").hide();
            }
            if (document.getElementById('dlg').style.visibility == 'hidden') {
              document.getElementById('dlg').style.visibility = '';
              $("#dlg").hide();
            }
            $("#bkg").fadeIn(500, "linear", function () { $("#dlg").show(800, "swing"); });
          });    

        });
      </script>

_view.php

<div class="post">
<?php echo $data->title;
echo $data->author;
?> 
</div>
<div class="normal">

     <p><a href="#" class="opn">Click here</a></p>

  </div>

  <div class="blockbkg" id="bkg" style="visibility: hidden;">
    <div class="cont" id="dlg" style="visibility: hidden;">
      <div class="closebtn" title="Close" id="closebtn"></div>
      <?php echo $data->title; ?>
    </div>
  </div>
4

1 に答える 1

1

主な問題は、リストの各要素を作成するために使用する _view.php が、ページ内に同じ ID [たとえばbkgand dlg] を持つ多くの要素を配置することだと思います。使用している JavaScript が正しく機能しなくなります。id 属性は、ページ内で一意である必要があります。class 属性を使用し、それに応じて JavaScript を調整します。

于 2013-05-02T10:06:49.153 に答える