2011-11-02 80 views
0

我需要擺脫鼠標懸停突出顯示,當您將鼠標懸停在jqgrid的列標題上時,不會出現其他任何內容。有關如何做到這一點的任何文件?或者我可以在哪裏開始?另外,如何根據列標題中字符串的寬度獲取自動列寬?我需要手動設置嗎?關於jqGrid的兩個問題

謝謝。

更新的清晰度清酒

我用tabletoGrid。我擺脫了桌子的排序功能(這給我一些問題)。但是當您將鼠標懸停在上面時,色譜柱仍然亮起。我的肛門保留性BA希望功能消失。所以一定要去。沒有自動列寬選項? jqGrid上的夥計們需要跟上它。如果我早先知道這一點,我會選擇一個不同的工具。

var $grid = $('#table1'), 
     hdiv = $grid[0].grid.hDiv, 
     $columnHeaders = $("thead tr.ui-jqgrid-labels th", hdiv) 
    $columnHeaders.unbind('mouseenter'); 
    $columnHeaders.unbind('mouseleave'); 

更新:我如何調用代碼

jQuery(document).ready(function() {    
     tableToGrid("#table1", { cmTemplate: { sortable: false }, 
      height: 500, 
      autowidth: true, 
      colNames: ['Name', 'Description', 'Population Type'] 
     }); 
    }); 
    var $grid = $('#table1'), 
     hdiv = $grid[0].grid.hDiv, 
     $columnHeaders = $("thead tr.ui-jqgrid-labels th", hdiv) 
    $columnHeaders.unbind('mouseenter'); 
    $columnHeaders.unbind('mouseleave'); 
+0

對不起,但你的問題還不夠清楚。你嘗試過'headertitles:true' jqGrid選項嗎?沒有基於字符串寬度的自動列寬。如果將它放在''內並獲得''的'jQuery.width',則可以計算字符串寬度。您應該在創建網格之前進行計算。整個解決方案不會那麼簡單。 – Oleg

+0

你應該寫簡短的評論來通知你在問題的文本中進行了修改。我發現你隨機更新了你的問題。 – Oleg

+0

你應該在'tableToGrid'之後直接在'jQuery(document).ready(function(){...})塊的'**裏面放置'unbind' **代碼。 – Oleg

回答

1

如果我理解你糾正你的問題是jqGrid的代碼the line

$("thead tr:first th",this).hover(
    function(){$(this).addClass('ui-state-hover');}, 
    function(){$(this).removeClass('ui-state-hover');} 
); 

hover方法是捷徑mouseentermouseleave bin丁。因此,要解除您需要執行的事件,請執行以下代碼:

var $grid = $('#list'), // the grid 
    hdiv = $grid[0].grid.hDiv, // DOM of the hdiv - the div which contain headers 
    $columnHeaders = $("thead tr.ui-jqgrid-labels th", hdiv); // th elements 
$columnHeaders.unbind('mouseenter'); 
$columnHeaders.unbind('mouseleave'); 

請參閱演示here

+0

很好的解釋。我得到一個無法獲取屬性'grid'的值:對象爲空或未定義異常 – SoftwareSavant

+0

@DmainEvent:您以錯誤的方式確定代碼。 'grid'屬性存在於創建jqGrid的所有DOM'

'元素中。 – Oleg

+0

對不起?我不確定自己明白。所以所有的

都有一個grid元素,或者只有jqGrid的表?我將以我如何使用代碼的方式更新我的文章。 – SoftwareSavant