jqGrid禁用行突出显示

时间:2010-09-28 20:12:49

标签: jquery jqgrid highlight

当您用鼠标悬停在网格上时,如何以编程方式禁用网格突出显示一行?想要在某些时候禁用它。


这是Oleg的代码:

  $('#result-close').click(function() {  
      //Turn off hover highlighting
      $("#list").unbind('mouseover');
      $("#list").unbind('mouseout');

      //Highlight row                    
      $("#" + selid).effect("highlight", {}, 5000);  

      //Turn on hover highlighting 
      setTimeout(function(){ 
                    $("#list").bind('mouseover',function(e) {
                        ptr = $(e.target).closest("tr.jqgrow");
                        if($(ptr).attr("class") !== "subgrid") {
                            $(ptr).addClass("ui-state-hover");
                        }
                        return false;
                    }).bind('mouseout',function(e) {
                        ptr = $(e.target).closest("tr.jqgrow");
                        $(ptr).removeClass("ui-state-hover");
                        return false;
                    });
      }, 2000);         

      $('#dialog').dialog( "close" );
  });

3 个答案:

答案 0 :(得分:23)

使用hoverrows:false option

答案 1 :(得分:0)

简单的Google搜索显示了此来源:http://www.trirand.net/examples/appearance/highlight_on_hover/default.aspx

“默认情况下,jqGrid会在悬停时突出显示行。这由AppearanceSettings.HighlightRowsOnHover属性控制 - 将其设置为false将禁用该功能。”

答案 2 :(得分:0)

我正在用一个中间函数替换现有的鼠标悬停处理程序,如果启用了网格,它只调用现有的处理程序,如下所示:

var enabled = true;
var jqe = jQuery("#grid");
var mouseover = jqe.data('events').mouseover[0].handler;
jqe.unbind('mouseover');
jqe.bind('mouseover', function() {
    if (enabled) {
        mouseover.apply(this, arguments);
    }
});

这样我就不必复制jqgrid事件代码了。

我不喜欢使用mouseover [0] .handler,但它暂时有用。