如何在ExtJS 4.1中更改光标图像

时间:2012-02-02 16:35:53

标签: extjs cursor extjs4

在ExtJS 4.0.2a中,我可以使用以下方法在网格上更改光标图像:

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

这在4.0.7或4.1中似乎不起作用。我没有得到任何css错误,但它确实在应该发生更改的位置给出了不自然的延迟。也许它被覆盖了?

更新

我正在尝试从网格onitemmousedown事件中运行此操作。我发现GridView获得了一个“.x-unselectable”类,使网格文本无法选择(我想要)。但是在ExtJS 4.0.7和4.1中,这个“.x-unselectable”类具有cursor: default设置,该设置由网格的所有行和单元继承,并覆盖我应用于游标的任何其他样式属性。它在4.0.2a中没有这个。

如果我使用!important强制使用gridview光标样式,则只有在我将其准确地放在两行之间的1px行之上时,光标才会发生变化,因为该行仍然继承了光标设置。我想我可以使用相同的方法覆盖所有行然后所有单元格的光标样式,但似乎应该有一些更清晰的extjs方法。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我猜body直接引用了正文的DOM元素。你试过吗

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

这会将身体包裹为Ext.Element,并为您提供所有不错的方法。如果这不起作用,我建议打开一个调试器并进入setStyle函数,看看是否有任何奇怪的事情发生,或者看一下body.style.cursor