Yii列表视图弹出窗口

时间:2013-05-02 05:58:33

标签: yii

我试图通过单击列表视图中的链接(单击此处)来弹出一个对话框。弹出窗口工作正常,但当我点击任何Click here链接时,它会显示列表中第一个数据的标题。我想在点击每个数据项的链接时显示相应的标题。 的index.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>

1 个答案:

答案 0 :(得分:1)

我认为主要的问题是,用于构建列表中每个元素的_view.php会在页面中放置许多具有相同ID的元素[例如bkg和{{1} }]。您正在使用的JavaScript将无法正常工作。 id属性在页面中应该是唯一的。使用class属性并相应地调整您的JavaScript。