如何在Yii列表视图中实现动态js脚本?
您好,谢谢您阅读我的问题。我有一个典型的列表视图:如何在Yii列表视图中实现动态js脚本?,yii,yii-extensions,Yii,Yii Extensions,您好,谢谢您阅读我的问题。我有一个典型的列表视图: <?php $this->widget('bootstrap.widgets.TbListView',array( 'dataProvider'=>$dataProvider, 'itemView'=>'_view', 'emptyText'=>'No Jobs', )); ?> 在我的_视图文件中,我有一个div和一个滑动切换div的按钮。如
<?php $this->widget('bootstrap.widgets.TbListView',array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
'emptyText'=>'No Jobs',
)); ?>
在我的_视图文件中,我有一个div和一个滑动切换div的按钮。如果我只是将Javascript放在页面顶部,它将不起作用,因为结果是动态的,div的名称会随着返回的id而更改,例如:
id="detailsDiv-<?php echo $data->id_employer_contract;?>"
id=“detailsDiv”
问题出在我的Javascript中,如下所示:
<?php Yii::app()->clientScript->registerScript('details', "$('#details-$data-id_employer_contract').click(function(){
$('#detailsDiv-$data->id_employer_contract').slideToggle();
return false;});");?>
将id
作为数据属性添加到切换按钮:
<button class="toggleDetails" data-id="<?php echo $data->id_employer_contract ?>">
嘿,我尝试了你的解决方案,但在查看源代码后生成的代码如下所示$(#details-7')。单击(函数(e){$('.detailsDiv').slideToggle();e.preventDefault();});这使得点击最后一个按钮关闭所有div我需要每个按钮关闭相应的div你一定忘了什么。这和我上面写的完全不同。仔细看:我使用$('.toggleDetails')。单击(..)
。另外,请确保将该Js放入视图文件中,在该文件中创建列表视图。哦,对不起,我再次更新了初始答案。所以也许你应该再试试上面的:)非常感谢,今天早上你为我节省了很多时间。你的答案是正确的
<?php Yii::app()->clientScript->registerScript('toggleDetails', "
$('.toggleDetails').click(function(e){
var id = $(this).data('id');
$('#detailsDiv-' + id).slideToggle();
e.preventDefault();
});
", CClientScript::POS_READY) ?>