Виджет «Мышь» - это внутренний плагин, который, кажется, в основном (или только) используется для низкоуровневой обработки перетаскиванием мышью.
Я только что написал сообщение в блоге об использовании его для прокрутки собственного перетаскивания (вместо использования Draggable): http://www.solitr.com/blog/2012/05/roll-your-own-drag-and-drop-handling-with-jquery-ui/
Суть в том, что вы можете создать подкласс, например, так:
$.widget('ui.custommouse', $.ui.mouse, {
options: {
mouseStart: function(e) {},
mouseDrag: function(e) {},
mouseStop: function(e) {},
mouseCapture: function(e) { return true; }
},
// Forward events to custom handlers
_mouseStart: function(e) { return this.options.mouseStart(e); },
_mouseDrag: function(e) { return this.options.mouseDrag(e); },
_mouseStop: function(e) { return this.options.mouseStop(e); },
_mouseCapture: function(e) { return this.options.mouseCapture(e); }
// Bookkeeping, inspired by Draggable
widgetEventPrefix: 'custommouse',
_init: function() {
return this._mouseInit();
},
_create: function() {
return this.element.addClass('ui-custommouse');
},
_destroy: function() {
this._mouseDestroy();
return this.element.removeClass('ui-custommouse');
},
});
Затем создайте экземпляр custommouse
плагина, который вы только что определили, и передайте свой собственный
обработчики событий как опции:
$('#containerElement').custommouse({
mouseStart: function(e) { ... },
mouseDrag: function(e) { ... },
mouseStop: function(e) { ... }
});