Событие .mousedown () не запускается на JScrollPane при нажатии на панель перетаскивания

Я пишу код, чтобы перетащить перетаскивание в нужное место, когда пользователь перетаскивает их вручную.

Я пытаюсь использовать событие .onmousedown (), чтобы получить позицию перетаскивания, когда пользователь наводит курсор мыши на нее, и сравнивать позицию в событии .onmouseup ().

Для mousedown:

var dragBarPosBefore = 0;
$(document).mousedown(function () {   
  dragBarPosBefore = ($(".jspPane").position().left) * -1;;  
  console.log(dragBarPosBefore);
});

а теперь mouseup:

var dragBarPos = 0;
$(document).mouseup(function () {
     dragBarPos = ($(".jspPane").position().left) * -1; 
     console.log(dragBarPos);
});

А потом я их сравниваю. Однако, когда я нажимаю на панель перетаскивания, работает только функция .mouseup (). мышка РАБОТАЕТ ТОЛЬКО, КОГДА Я НАЖИМАЮ В ЛЮБОМ месте, кроме DRAGBAR.

кто-нибудь знает причину и как это исправить? Большое спасибо!


person Rodrigo Coelho Costa Junior    schedule 30.07.2013    source источник


Ответы (1)


Когда вы выполняете $ (document) .mousedown, вы привязываете событие ко всему документу. Вот почему событие срабатывает, когда вы щелкаете в другом месте. Это ваше намерение?

Пытаться:

$('#dragBar').mousedown(function ...)
person Dimas Cyriaco    schedule 30.07.2013
comment
Все еще не работает ... и да, это мое намерение только для мыши, потому что мне нужно получить данные о положении, даже если пользователь отпустит кнопку мыши от перетаскивания. Но для mousedown это не обязательно, так как оно всегда запускается на перетаскивании. - person Rodrigo Coelho Costa Junior; 31.07.2013
comment
Напоминание: проблема возникает только при наведении мышки на DRAGBAR. Остальная часть документа работает нормально. проверьте консоль - person Rodrigo Coelho Costa Junior; 31.07.2013
comment
Функция initialiseHorizontalScroll плагина захватывает «mousedown» на элементе перетаскивания и возвращает false, что предотвращает запуск вашего события. github.com/vitch/jScrollPane/blob/master/ скрипт / - person Dimas Cyriaco; 31.07.2013
comment
И поскольку единственный способ добавить событие к динамически созданному элементу - это $ (document) .on (event, element, function), я не думаю, что это возможно с этим плагином ... - person Dimas Cyriaco; 31.07.2013
comment
Я думаю, что если я использую event.preventDefault (), он сработает, но я не знаю, как его использовать. - person Rodrigo Coelho Costa Junior; 31.07.2013