javascript - 使用 Ajax 在 Gridview 更新后显示工具提示

标签 javascript jquery ajax gridview yii

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

这是我用来自动更新 GridView 的 JS 代码:

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

                }
        });
},4000)

非常感谢。

最佳答案

您实际上应该在 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',
        ...
    ),
));
?>

关于javascript - 使用 Ajax 在 Gridview 更新后显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362363/

相关文章:

php - 用 php 和 ajax 更新 mysql

javascript - 如何正确地将具有多个元素的新对象推送到数组中?

javascript - document.getElementsByClassName - 跨浏览器修复

JavaScript 嵌套 setInterval

ie7 中的 JQuery Event.target 问题

css - 一个简单的问题。有没有办法用 jquery 动态加载 css 链接?在 $.ajax 或其他什么?

php - 基于主类别显示子类别不适用于 AJAX

javascript - 我的 JavaScript 没有更改 className 属性

php - 使用 Ajax 将 PHP 值传递给 javascript

javascript - 为 cookie 设置一个新值会创建一个重复的 cookie - jquery cookie