在CListView 里,style 和js在翻页后都不好使了(已附截图) [ 新手入门 ]
有人遇到过? 在CListView view, itemview里 有一些,inline style,js 。 在显示第一页时,都好使。 但翻页后,所有的javascript, css 都不好使了。
求解 谢谢。
就用yii建立一个app后,都自动生成一个user,的table,view files, 和controller. 我就改了一下那个itemview file: 加了style,和一个js。
<style type="text/css">
.user_view li {
float: left;
position: absolute;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$("#user_view_li_id_<?php echo $data->id;?>").css('left', 100);
$("#user_view_li_name_<?php echo $data->username;?>").css('left', 400);
$("#user_view_li_pass_<?php echo $data->password;?>").css('left', 800);
$("#user_view_li_email_<?php echo $data->email;?>").css('left', 1200);
});
</script>
<div class="view">
<ul class="user_view">
<li id="user_view_li_id_<?php echo $data->id; ?>">
<b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
<br />
</li>
<li id="user_view_li_name_<?php echo $data->username;?>">
<b><?php echo CHtml::encode($data->getAttributeLabel('username')); ?>:</b>
<?php echo CHtml::encode($data->username); ?>
<br />
</li>
<li id="user_view_li_pass_<?php echo $data->password;?>">
<b><?php echo CHtml::encode($data->getAttributeLabel('password')); ?>:</b>
<?php echo CHtml::encode($data->password); ?>
<br />
</li>
<li id="user_view_li_email_<?php echo $data->email;?>">
<b><?php echo CHtml::encode($data->getAttributeLabel('email')); ?>:</b>
<?php echo CHtml::encode($data->email); ?>
<br />
</li>
<div class="clear"></div>
</ul>
</div>
第一页结果:正确。 [attach]680[/attach]
第二页,应该是js没有被运行,所以style不正确。 [attach]679[/attach]
共 9 条回复
-
问题就在这个$(document).ready()上面,因为yii也会用到jquery,每次翻页就会把你写的document ready代码覆盖,如之前提到的,需要把你的代码用cclientscript注册:
比如:Yii::app()->clientScript->registerScript('search', " $('.search-button').click(function(){ $('.search-form').toggle(); return false; }); $('.search-form form').submit(function(){ $.fn.yiiGridView.update('test-grid', { data: $(this).serialize() }); return false; }); ");
-
晕了,没注册明白。
原代码:
<script type="text/javascript"> $(document).ready(function(){ <?php foreach($data->details as $detail) :;?> $("#program_<?php echo $detail->id;?>").css('left', <?php echo $detail->id*400;?>; <?php endforeach;?> }); </script>
我写的错误的注册代码:
$cs = Yii::app()->getClientScript(); $js = " <?php foreach ($data->details as $detail):;?> $('#program_$detail->id').css('left', (int)$detail->id*400); <?php endforeach;?> "; $cs->registerScript('program', $js, CClientScript::POS_READY);
想要这么注册,可是总提示detail 没定义。
汗,现学现用的javascript,懂得很有限。(老板顾我,真亏啊。)
求助。
功夫熊猫
注册时间:2012-03-14
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱110
- 威望0
- 积分110