0

我在表格中有数据列表并提供了一个弹出框。就像当指针悬停在该图像上时,它会弹出该数据的主体。在我分离那个视图之前它是有效的。我正在使用 yii。

这是我的表格代码:

    <tbody>
        <?php foreach ($page_data['data_list']as $data_from_controller_key => $data_from_controller){?>
        <tr>
            <td>
                <a style="cursor:pointer;" . . . .><?php echo $data_from_controller['title'] ?></a>
            </td>
            <td>
                 <div rel="popover" data-trigger="hover"  
                     data-placement="left" data-content="<?php echo $data_from_controller['content'] ?>" >
                    <a class="btn btn-small" data-toggle="modal"><i class="icon-search"></i></a> 
                </div>
            </td>
        </tr>
        <?php } ?>
    </tbody>

当这个视图仍然是我的index.php. 然后我把它转移到另一个视图,接下来我知道,弹出框不起作用。

[更新]

所以我想问题不在这里。它在我的 JS 加载中。我的 JS 没有加载到这个视图中。就像我的datatables.js. 我尝试通过在底部执行此操作以应用 JS 将 JS 放在此视图中,因为从控制器初始化它不会有任何好处:

    <script>
            $('table#listdata').dataTable({
                "sDom": "<'dt_header'<'row-fluid'<'span6'l><'clear'f>>r>t<'dt_footer'<'row-fluid'<'span6'i><'span6'p>>>",
                "aoColumnDefs": [
                    { "bSortable": false, "aTargets": [1] }
                ],
                "bStateSave": true
        }).columnFilter();
    </script>

我的新问题是我的 JS 未加载/初始化的原因是什么?

4

2 回答 2

0

原因是你必须在文件准备好后声明你的脚本,那是你的错误

$(document).ready(function(){
        $('table#listdata').dataTable({
                "sDom": "<'dt_header'<'row-fluid'<'span6'l><'clear'f>>r>t<'dt_footer'<'row-fluid'<'span6'i><'span6'p>>>",
                "aoColumnDefs": [
                    { "bSortable": false, "aTargets": [1] }
                ],
                "bStateSave": true
        }).columnFilter();
});
于 2013-11-05T04:37:10.937 回答
0

您可以通过多种方式加载 js 片段。

方式1:您可以在主题主文件的底部编写此代码段。即在</body> </html>标签之前。

方式2:

您可以在主题主文件的底部包含自定义 js 文件。即检查以下代码:

  • 如果你使用 Yii 默认主题:

<script src="<?php echo Yii::app()->request->baseUrl; ?>/assets/js/custom.js"></script>

  • 如果您使用自定义主题:

<script src="<?php echo Yii::app()->theme->baseUrl; ?>/assets/js/custom.js"></script>

然后,将代码片段写入 custom.js 文件的函数中,即

function tableSorter(){

$('table#listdata').dataTable({
    "sDom": "<'dt_header'<'row-fluid'<'span6'l><'clear'f>>r>t<'dt_footer'<'row-fluid'<'span6'i><'span6'p>>>",
    "aoColumnDefs": [
        { "bSortable": false, "aTargets": [1] }
    ],
    "bStateSave": true
}).columnFilter();
}

现在调用特定控制器或特定操作或特定视图的函数。在您的阶段,您应该为特定视图调用函数,只需打开所需的视图文件并在文件顶部编写以下代码:

Yii::app()->clientScript->registerScript('tablesorter', "
$(function() { tableSorter();});
");

我使用方式2。请尝试。祝你好运

于 2013-11-05T03:41:07.690 回答