2012-02-02 68 views
1

改變光標圖像在ExtJS的4.0.2a我可以在使用網格改變光標圖像:如何ExtJS的4.1

body.setStyle('cursor','move'); 

這似乎並不在4.0.7或4.1工作。我沒有得到任何css錯誤,但它確實會在發生變化的地方發生不自然的延遲。也許它被覆蓋?

UPDATE:

我試圖從電網onitemmousedown事件運行此。我發現GridView得到一個類「.x-unselectable」來使網格文本不可選(我想要的)。但是在ExtJS 4.0.7和4.1中,這個「.x-unselectable」類有一個cursor: default設置,它被網格的所有行和單元格繼承,並覆蓋我應用於遊標的任何其他樣式屬性。它在4.0.2a中沒有。

如果我使用!important強制使用gridview光標樣式,則光標只會在兩行之間的1px行之上完全更改,因爲該行仍繼承光標設置。我想我可以覆蓋所有行,然後所有單元格的光標樣式使用這種相同的方法,但它似乎應該有一些更清潔的extjs方法。

回答

2

有沒有什麼特別的原因不使用CSS?

<style> 
.MyTarget{ 
    cursor: pointer; 
} 

/*override the panel header cursor */ 
.x-form-field { 
    cursor: pointer; 
} 
</style> 
<div class="MyTarget">The cursor will be a pointer over the body here</div> 

// Some Ext to create a panel - the panel header will have the new cursor declared in the CSS 
+0

我需要它專門改變鼠標按下事件。我試着用extjs方法body.addCls('class-name ...')使用普通的css。即使我看到類應用在螢火蟲光標不會改變... – Geronimo 2012-02-02 18:24:54

+0

根據埃裏克的建議,你有沒有嘗試添加!對你的聲明重要? 'Ext.getBody().setStyle(「cursor」,「move!important」);' 爲了防止網格重新設置光標? – phatskat 2012-02-02 20:00:49

+0

我設法使用'!important'在gridview上覆蓋它,不幸的是,網格的每一行都繼承了'.x-unselectable'類,它設置了'cursor:default',它使得文本無法選擇(我想要),但它意味着遊標只會在兩行之間的1px行之上纔會發生變化......我想我可以嘗試覆蓋所有行的遊標樣式,然後使用相同的方法覆蓋所有單元格,但似乎應該有作爲extjs的一部分更乾淨的東西。 – Geronimo 2012-02-02 21:09:26

1

我猜body直接指向body的DOM元素。你試過

Ext.getBody().setStyle("cursor", "move"); 

這將包裹身體作爲Ext.Element,給你的一切好方法。如果這不起作用,我建議打開一個調試器,並進入setStyle函數來查看是否有任何奇怪的事情發生,或者將手錶放在body.style.cursor上。

+0

我把body定義爲Ext.getBody()不是DOM元素。該手錶顯示光標_is_已更改爲「移動」。它必須在4.0.2以後的版本中在網格或其下的某處被覆蓋。也許有一些方法來禁用覆蓋。 – Geronimo 2012-02-02 18:47:40