Управление событиями мыши
Здравтсвуйте
Работаю над контекстным меню системы Redmine для тачскринов, которое вызывается правой кнопкой мыши. В своей работе использую Jquery Mobile, который умеет отлавливать события нажатия и удерживания пальца на экране тачскрина. На событие удерживания пальца на экране я повесил правый клик, который генерирую с помощью того же Jquery. Меню выпадает как положено. Но вот беда, когда я отпускаю палец с экрана то меню тут же пропадает потому, что снова срабатывает событие нажатия. В чём может быть проблема и как я могу отключить то событие которое возникает после удерживания пальца? Спасибо за помощь Виталий |
Сделайте чтобы четные разы срабатывания события происходило одно действие, а нечетные разы срабатывания события происходило другое действие)
|
Я так понимаю нужно использовать bind и unbind. Но как можно в обработчике одного события заблокировать другое событие, а после выхода из обработчика возобновить то, заблокированное?
|
Цитата:
$(element).on('click.name', function(){ //бла бла бла } ) а когда хотите выключить его то пишите $(element).off('click.name') чтобы снова включить пишите $(element).on('click.name') вот это вот name это идентефикатор события, чтобы jquery знала какое именно событие отключать и включать. пишется оно без пробелов через точку после названия события, в данном случае click попробуйте, если в мобайл версии нет этих методов on off? тогда скажу другой способ |
Я решил задачу следующим образом:
Ввел глобальную переменную Flag = false Далее в обработчике удерживания пальца на экране taphold присвоил этой переменной значение true, а в обработчике нажатия пальцем на экран tap прописал следующее: if(flag == true){ flag = false; return false } Теперь, то событие tap которое срабатывает после того, как пользователь отпустил палец не будет срабатывать и контекстное меню никуда не исчезнет. |
да, я думал посоветовать такой вариант, то каким то он некрасивым мне показался.
|
Часовой пояс GMT +3, время: 13:08. |