我试图通过单击列表视图中的链接(单击此处)来弹出一个对话框。弹出窗口工作正常,但当我点击任何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>
答案 0 :(得分:1)
我认为主要的问题是,用于构建列表中每个元素的_view.php会在页面中放置许多具有相同ID的元素[例如bkg
和{{1} }]。您正在使用的JavaScript将无法正常工作。 id属性在页面中应该是唯一的。使用class属性并相应地调整您的JavaScript。