datagrid增長提示功能tooltip

datagrid初始化中加入提示css

onLoadSuccess:function(data){web

            if(!data.rows[0].id) {app

                $('#tibetanInformationGrid').datagrid('hideColumn','id');ide

            }this

            $(this).datagrid('doCellTip',{'max-width':'300px','delay':500});.net

        }orm

增長提示擴展 seo

$.extend($.fn.datagrid.methods, {ip

            /**rem

             * 開打提示功能

             * @param {} jq

             * @param {} params 提示消息框的樣式

             * @return {}

             */

            doCellTip: function(jq, params){

                function showTip(data, td, e){

                    if ($(td).text() == "") 

                        return;

                    data.tooltip.text($(td).text()).css({

                        top: (e.pageY + 10) + 'px',

                        left: (e.pageX + 20) + 'px',

                        'z-index': $.fn.window.defaults.zIndex,

                        display: 'block'

                    });

                };

                return jq.each(function(){

                    var grid = $(this);

                    var options = $(this).data('datagrid');

                    if (!options.tooltip) {

                        var panel = grid.datagrid('getPanel').panel('panel');

                        var defaultCls = {

                            'border': '1px solid #333',

                            'padding': '2px',

                            'color': '#333',

                            'background': '#fff',

                            'position': 'absolute',

                            'max-width': '200px',

                            'border-radius' : '4px',

                            '-moz-border-radius' : '4px',

                            '-webkit-border-radius' : '4px',

                            'display': 'none'

                        }

                        var tooltip = $("<div id='celltip'></div>").appendTo('body');

                        tooltip.css($.extend({}, defaultCls, params.cls));

                        options.tooltip = tooltip;

                        panel.find('.datagrid-body').each(function(){

                            var delegateEle = $(this).find('> div.datagrid-body-inner').length ? $(this).find('> div.datagrid-body-inner')[0] : this;

                            $(delegateEle).undelegate('td', 'mouseover').undelegate('td', 'mouseout').undelegate('td', 'mousemove').delegate('td', {

                                'mouseover': function(e){

                                    if (params.delay) {

                                        if (options.tipDelayTime) 

                                            clearTimeout(options.tipDelayTime);

                                        var that = this;

                                        options.tipDelayTime = setTimeout(function(){

                                            showTip(options, that, e);

                                        }, params.delay);

                                    }

                                    else {

                                        showTip(options, this, e);

                                    }

 

                                },

                                'mouseout': function(e){

                                    if (options.tipDelayTime) 

                                        clearTimeout(options.tipDelayTime);

                                    options.tooltip.css({

                                        'display': 'none'

                                    });

                                },

                                'mousemove': function(e){

                                    var that = this;

                                    if (options.tipDelayTime) 

                                        clearTimeout(options.tipDelayTime);

                                    //showTip(options, this, e);

                                    options.tipDelayTime = setTimeout(function(){

                                            showTip(options, that, e);

                                        }, params.delay);

                                }

                            });

                        });

 

                    }

 

                });

            },

            /**

             * 關閉消息提示功能

             *

             * @param {}

             *            jq

             * @return {}

             */

            cancelCellTip: function(jq){

                return jq.each(function(){

                    var data = $(this).data('datagrid');

                    if (data.tooltip) {

                        data.tooltip.remove();

                        data.tooltip = null;

                        var panel = $(this).datagrid('getPanel').panel('panel');

                        panel.find('.datagrid-body').undelegate('td', 'mouseover').undelegate('td', 'mouseout').undelegate('td', 'mousemove')

                    }

                    if (data.tipDelayTime) {

                        clearTimeout(data.tipDelayTime);

                        data.tipDelayTime = null;

                    }

                });

            }

        });

相關文章
相關標籤/搜索