Как изменить изображение курсора в ExtJS 4.1 - PullRequest
1 голос
/ 02 февраля 2012

В ExtJS 4.0.2a я мог изменить изображение курсора над сеткой, используя:

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, курсор изменяется только тогда, когда я получаю его точно над линией 1px между двумя строками, потому что строка все еще наследует настройку курсора. Я полагаю, я мог бы переопределить стиль курсора для всех строк , а затем для всех ячеек, используя тот же метод, но, похоже, должен быть какой-то более чистый метод extjs.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Есть ли какая-то особая причина не просто использовать 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 голос
/ 02 февраля 2012

Я предполагаю, что body относится непосредственно к элементу DOM для тела.Вы пробовали

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

Это обернет тело как Ext.Element и даст вам все хорошие методы.Если это не сработает, я предлагаю открыть отладчик и войти в функцию setStyle, чтобы посмотреть, происходит ли что-то странное, или поставить часы на body.style.cursor.

...