2013-05-09 2 views
0

У меня есть следующий код, который вызывает функцию. Тем не менее, я хотел бы, чтобы функция вызывалась только при событии Mouse Up.Если мышь, то вызовите функцию

positionMenu : function(){ 
     if (positionMenuInvalidated) return; 
     positionMenuInvalidated = true; 
     setTimeout(_positionMenuNow,1); } 

_positionMenuNow, который называется в setTimeout должно происходить только в случае кнопки мыши. Как это условие может быть выполнено?

+0

на мышиUp над каким элементом? –

+0

Вы должны добавить больше кода или объяснить свою ситуацию лучше. Где происходит захват событий? почему вы устанавливаете функцию Timeout, если она предназначена для вызова только при помощи мыши? – cernunnos

+0

У меня есть элемент управления, который перетаскивается и перемещается в другое место. Только при отбрасывании должна вызываться функция positionMenuNow. Помогает ли это разъяснить? – user2156494

ответ

2

Использование .on() для привязки событий к функциям обработчика:

$('body' /* or any other selector */).on('mouseup', _positionMenu); 
^         ^  ^
selection that the handler is bound to | event type | handler function (can also be an anonymous function) 

Читайте о .on()

+0

Приносим извинения за аналогичный ответ, но я пытаюсь выразить другую идею, отличную от исполнения. – Starx

+0

Привет, я пробовал это, но код на мышь запускается так или иначе, чтобы вызвать функцию _positionMenu. Я думаю, что утверждение if могло бы сделать трюк. Не могли бы вы указать что-то на этих условиях? Еще раз спасибо .. – user2156494

0

Я не думаю, что его хорошая идея, чтобы проверить, является ли мышь или нет во время выполнения тайм-аут. Вместо этого лучше, если вы активируете таймаут после срабатывания mouseup.

$('body').on('mouseup', function() { 
    setTimeOut("_positionMenu()", 1000); 
+0

Привет, спасибо за ваш ответ .. Тайм-аут должен выполняться или вызывать функцию после задержки 1 сек только тогда, когда мышь вставлена ​​или была выпущена. Помогает? – user2156494

Смежные вопросы