Najlepszy sposób na złapanie myszy poza element 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.
    }
});

Usiłuję złapać zdarzenie mouseup z przeniesienia, które zostało zwolnione wewnątrz lub na zewnątrz elementu. Ten kod prawie działa, ale problemem jest unbind ('mouseup'), które odwiązuje inne skrypty dołączone do zdarzenia mouseup (jqueryui). Jeśli nie ustawiono unbind (), kod jest układany w stos w zdarzeniu mouseup i wywoływany x razy, gdzie x jest czasem, który upłynął.

Trasa 1: czy istnieje jakaś funkcja autodestrukcji, która wywołuje się raz i niszczy?

Route 2: dowolny sposób kopiowania / klonowania funkcji mouseup przed wstawieniem kodu, a następnie unbind, a następnie ustawiony jako poprzedni?

Idealnie chciałbym zachować tę strukturę kodu dla schludności, ponieważ mam wiele klikalnych elementów, więc wiązanie document.mouseup poza elementem.mousedown byłoby bałagan.

Oto skrzypce, o których zapomniałem dodaćhttp://jsfiddle.net/9gFNk/

questionAnswers(3)

yourAnswerToTheQuestion