2013-05-02 80 views
0

我想通过单击列表视图中的链接(单击此处)来弹出对话框。 popover工作正常,但是当我点击任何点击链接时,它会显示列表中第一个数据的标题。点击每个数据项的链接时,我想显示相应的标题。 的index.phpYii列表视图弹出窗口

<?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> 
+0

@Anesh:您提出了21个问题,并且从未标记答案中的一个为答案 – 2013-11-20 10:02:28

回答

1

我认为主要的问题是,你的_view.php,你用它来生成列表中的每个元素,往里面的许多因素页面具有相同的ID [例如bkgdlg]。您使用的JavaScript将无法正常工作。 id属性在页面中应该是唯一的。使用class属性并相应地调整你的javascript。