Проблема с обработкой событий мыши firefox
Всем привет, возникла проблема с мышой в лисе.
В хроме, эксплорере нормально работает функция (при перемещении по элементу с нажатой клавишей меняет свою позицию вложенный элемент) А, в лисе не работает по той причине, что нет разницы нажата левая клавиша или никакой не нажато. function movecursor(obj,ev) { if (!ev.which && ev.button) { if (ev.button & 1) ev.which = 1 else if (ev.button & 4) ev.which = 2 else if (ev.button & 2) ev.which = 3 } e =window.event; if (e) ; else e=ev; if(e.pageX) { tmpX = e.pageX + window.pageXOffset; } else if(e.clientX) { tmpX = e.clientX + document.body.scrollLeft; } else { return false } cursor=$(obj).children('.clcursor'); x=0; objj=obj.parentNode; while(objj) { x += objj.offsetLeft; objj = objj.offsetParent; } b=cursor.position().left-tmpX+x; a=0; if ((cursor.position().left-b+cursor.width())>$(obj).width()) { a=$(obj).width()-cursor.position().left-cursor.width()+b; } if(ev.which==1) { cursor.css('left',cursor.position().left-b+a); } } Спасибо за ответы заранее. |
var Flag=false; $("Cелектор").mouseup(function(){ Flag=false; }).mousedown(function(){ Flag=true; }); Проверяете флаг в Вашей функции на true |
может нужно так написать
if (ev.button == 1) ev.which = 1 |
vadim5june, Если не на jQuery
Имхо тут должно быть условие для e =селектор.onmousedown&&window.event; |
Deff,
Примерно так пробовал, работает плохо - косяк за счет наведения на остальные вложенные объекты ( в том числе на курсор) + можно нажать клавишу на элементе, а отпустить на другом. vadim5june, Это спецом для IE написано побитовая операция, в мозилле не используется. Можно написать, конечно и так, только не поможет. Проблем с получением объекта event не наблюдается, наблюдается отсутствие разницы между нажатием левой клавиши и просто отсутствием нажатия мыша. |
Цитата:
На крайняк - $("body").mouseup(function(){ //Хотя body имхо излишне - нун сокращать по минимуму |
Deff,
Эти события не различают клавиш. В принципе мне не важно, использовать jq или нет, главное решение задачи. |
Цитата:
|
Часовой пояс GMT +3, время: 21:04. |