【问题标题】:Display Tooltip After Gridview Updates Using Ajax使用 Ajax 更新 Gridview 后显示工具提示
【发布时间】:2013-08-21 16:02:23
【问题描述】:

我使用 yiiGridView javascript 函数每 4 秒自动更新一个带有联系人的 gridview(使用 setInterval)。 当鼠标悬停在“查看”、“编辑”或“删除”按钮之一上时,总会出现一个工具提示(我正在使用 yii 引导扩展来为工具提示提供更好的图形设计)。但是,当 ajax 请求更新 gridview 时,工具提示会消失,并且不会在 google chrome 中再次显示,除非我再次移动鼠标。在 Firefox 和 IE 中,工具提示会隐藏,但随后会自动再次显示。如果鼠标继续在与以前相同的位置,我是否可以调用任何函数来强制显示的工具提示再次显示?我想我必须在 yiiGridView 的完整函数中调用这样的函数,对吧?谁能帮帮我?

这是我用来自动更新网格视图的 JS 代码:

setInterval(function(){
        $('#contact-grid').yiiGridView('update', {
                data: $(this).serialize(),
                complete: function(jqXHR, status) {

                }
        });
},4000)

非常感谢。

【问题讨论】:

  • setInterval() 与 ajax 一起使用并不是一个好主意,因为它具有异步特性和去同步问题。
  • 你有什么推荐的?谢谢。
  • 递归使用setTimeout()和ajax回调函数。
  • ajax回调函数递归?可以举个例子吗?
  • 你能发布工具提示代码吗?

标签: javascript jquery ajax gridview yii


【解决方案1】:

您实际上应该在CGridView 中使用“afterAjaxUpdate”

/**
 * @var string a javascript function that will be invoked after a successful AJAX response is received.
 * The function signature is <code>function(id, data)</code> where 'id' refers to the ID of the grid view,
 * 'data' the received ajax response data.
 */
public $afterAjaxUpdate;

你可以这样使用它:

<?php
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'mygrid',
    'dataProvider' => $dataprovider,
    'afterAjaxUpdate' => 'function(){$(\'[data-toggle="tooltip"]\').tooltip({ html:true, trigger:\'hover\'})}', // <-- this line does the trick!
    'columns' => array(
        'name',
        'address',
        ...
    ),
));
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多