W jaki sposób można programowo wyłączyć wyświetlanie siatki od podświetlenia wiersza po najechaniu myszą nad nim? Chcesz to wyłączyć tylko w określonych momentach.jqGrid wyłącz podświetlanie wierszy
Jest to kod z Olega, który pracował:
$('#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");
});
Mogę to uzyskać pracować, gdy ustawię to w początkowej konfiguracji siatki. Ale jeśli spróbuję ustawić to po początkowym załadowaniu za pomocą '$ (" # list "). SetGridParam ({hoverrows: true});' nowe ustawienie nie wydaje się mieć wpływu. Próbowałem przeładować sieć ('$ (" # list "). Trigger (" reloadGrid ");') po zmianie właściwości, ale to też nie działa. Doktorzy mówią, że to można zmienić .. jakieś pomysły? –
@ Marcus: Masz rację w tabeli na stronie http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options. Myślę, że jest to bardziej błąd w dokumentacji. Niemniej jednak możesz wyłączyć dynamiczne uaktywnianie wierszy ** jeden raz ** w odniesieniu do '$ (" # list "). Unbind (" mouseover "); $ (" # list "). Unbind (" mouseout ");' . Zobacz wersję demonstracyjną na http://www.ok-soft-gmbh.com/jqGrid/Pager.htm (kliknij "Wyłącz wiersz wskaźnika"). Nie można tak łatwo przywrócić stanu początkowego. Aby to przywrócić, musisz powiązać zdarzenia jeszcze raz z odpowiednimi funkcjami (zobacz: grid.base.js linie 2109-2119) – Oleg
@ Marcus: spójrz na http://github.com/tonytomov/jqGrid/blob/master/ js/grid.base.js # L2111 (linie 2111-2121), które będą używane w przypadku 'hoverrows: true' – Oleg