当您用鼠标悬停在网格上时,如何以编程方式禁用网格突出显示一行?想要在某些时候禁用它。
这是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" );
});
答案 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,但它暂时有用。