Лучший способ поймать мышку вне элемента 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/

Ответы на вопрос(3)

Ваш ответ на вопрос