Лучший способ поймать мышку вне элемента mousedown
$('#clickableElement').bind({
mousedown: function(e)
{
console.log('mousedown on element');
$(document).bind('mouseup',function(e){
console.log('mouseup caught');
//Do some magic here
$(this).unbind('mouseup');
});
},
mouseup:function(e)
{
//mouseup within element, no use here.
}
});
Я пытаюсь поймать событие mouseup из mousedown, который выпущен внутри или снаружи элемента. Этот код почти работает, но проблема в том, что unbind ('mouseup') освобождает другие сценарии, связанные с событием mouseup (jqueryui). Если unbind () не установлен, то код складывается в событие mouseup и вызывается x количество раз, где x - это количество копий, которое вы поместили.
Маршрут 1: существует ли какая-то функция самоуничтожения, которая вызывает себя один раз и уничтожает?
Маршрут 2: любой способ скопировать / клонировать функцию mouseup до вставки кода, затем отсоединить, а затем установить как предыдущий?
В идеале я хотел бы сохранить эту структуру кода для аккуратности, так как у меня есть много интерактивных элементов, поэтому привязка document.mouseup вне element.mousedown была бы грязной.
Вот скрипка, которую я забыл добавитьhttp://jsfiddle.net/9gFNk/