我在表格中有数据列表并提供了一个弹出框。就像指针悬停在该图像上一样,它将弹出该数据的主体。在我分开这个观点之前它正在工作。我正在使用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
的一部分时,popover正在运行。然后我把它转移到另一个视图,接下来我知道,popover不起作用。
[UPDATE]
所以我猜问题不在这里。这是我的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未加载/初始化的原因是什么?
答案 0 :(得分:0)
在许多方面,您可以加载js代码段。
方式1: 您可以在主题的主文件底部编写此片段。即在</body>
</html>
标签之前。
方式2:
您可以在主题的主文件底部包含自定义js文件。即检查以下代码:
<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();});
");
我使用Way 2.请尝试。祝你好运
答案 1 :(得分: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();
});