Мое приложение имеет много функций перетаскивания. При перетаскивании я хочу, чтобы курсор изменился на некоторый курсор захвата. Internet Explorer и Firefox хорошо работают для этого, но Chrome всегда изменяет курсор на текстовый курсор.
У меня похожая проблема с использованием jQuery UI draggable and sortable (ver. 1.8.1), и она довольно специфична, поэтому я предполагаю, что вы используете ту же библиотеку.
Проблема вызвана ошибкой в jQuery UI (на самом деле это исправление другой ошибки Safari). Я только что поднял этот вопрос в jQuery UI http://dev.jqueryui.com/ticket/5678, так что, думаю, вам придется подождать, пока его исправят.
Я нашел обходной путь для этого, но он довольно сложный, так что используйте его только если вы действительно знаете, что происходит ;)
if ($.browser.safari) {
$.ui.mouse.prototype.__mouseDown = $.ui.mouse.prototype._mouseDown;
$.ui.mouse.prototype._mouseDown = function(event){
event.preventDefault();
return $.ui.mouse.prototype.__mouseDown.apply(this, arguments);
}
}
Он просто отключает исправление, которое находится в коде jQuery UI, так что в основном он может сломать что-то.
Попробуйте отключить событие выделения текста.
document.onselectstart = function(){ return false; }
Это отключит любое выделение текста на странице и, кажется, браузер начнет показывать пользовательские курсоры.
Но помните, что выделение текста не будет работать вообще, поэтому лучше всего делать это только во время перетаскивания, и включать его снова сразу после этого. Просто прикрепите функцию, которая не возвращает false:
document.onselectstart = function(){ return true; }