0

您好,感谢您阅读我的问题。我有一个典型的列表视图:

 <?php $this->widget('bootstrap.widgets.TbListView',array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_view',
        'emptyText'=>'No Jobs',             
)); ?>

在我的 _view 文件中,我有一个 div 和一个可以滑动切换 div 的按钮。如果我只是将 Javascript 放在页面顶部,它不起作用,因为结果是动态的,并且 div 的名称会随着返回的 id 而变化,例如:

id="detailsDiv-<?php echo $data->id_employer_contract;?>"

问题出在我的 Javascript 中,如下所示:

<?php Yii::app()->clientScript->registerScript('details', "$('#details-$data-id_employer_contract').click(function(){
$('#detailsDiv-$data->id_employer_contract').slideToggle();
return false;});");?>

如何使这个 Javascript 代码动态化?意思是,我怎样才能遍历 id?我尝试将代码添加到 listview 属性ajaxUpdate,但它仍然无法正常工作。有人可以告诉我如何在列表视图中循环 Javascript 吗?

4

1 回答 1

2

添加id到您的切换按钮作为数据属性:

<button class="toggleDetails" data-id="<?php echo $data->id_employer_contract ?>">

然后你可以像这个js一样访问这些数据属性:

<?php Yii::app()->clientScript->registerScript('toggleDetails', "
    $('.toggleDetails').click(function(e){
        var id = $(this).data('id');
        $('#detailsDiv-' + id).slideToggle();
        e.preventDefault();
    });
", CClientScript::POS_READY) ?>

注意:您不应将此 javascript 放入_view.php呈现列表视图的主文件中,而应放入其中。您只需要这一个片段即可处理所有按钮。

于 2013-05-09T07:18:22.233 回答