Vorbei jQuery .klicken Sie auf() eine Funktion als eine variable

Arbeite ich mit einem tabbed-interface und habe folgende jQuery-Funktion einrichten, um den Griff, die Sie auf Veranstaltungen meines tabs.

$(document).ready(function () {

    $('a#foo').click(function() {
        //content, various calls
        return false;
    });
});

Die oben ist ein Beispiel von einem meiner tabs, die anderen sind auch innerhalb des gleichen Dokuments bereit blockieren. Was ich tun musste, war, es so machen das derzeit ausgewählte Registerkarte konnte nicht wieder angeklickt, und dass in einigen anderen Fällen konnte ich manuell deaktivieren, Registerkarten, wenn nötig. Ich erreicht diese über den folgenden:

$('a#play').unbind('click');    

Dies funktioniert gut, und es ist sicherlich deaktiviert die tabs aber das problem wird dann rebinding klicken Sie auf die Aktion, war einmal dort. Ich erreichte dies über die bind-Funktion:

$('a#foo').bind('click', function() {
//the same content and calls as before
return false;
});

Diese funktioniert auch einwandfrei, aber es hat sich überaus unübersichtlich wie ich haben Hinzugefügt Registerkarten, um mein UI. Die unmittelbare Lösung zu sein scheint zu schaffen, die Funktion als eine variable und übergeben Sie es in den ersten Klick-Erstellung und in die Bindung, die Veranstaltung. Etwa so:

var Foo = new function() {
    //same content and calls as before
    return false;
}

$('a#foo').click(Foo());

$('a#foo').bind(Foo());

Diese, für einen oder anderen Grund scheint zu sein, verursachen browser abstürzt Fragen. Ist es nicht möglich, übergeben eine Funktion als eine Variable in diesem Fall oder bin ich einfach nur etwas falsch? Alternativ gibt es einen besseren Weg, um die Ergebnisse erzielen, die ich Suche? Danke.

InformationsquelleAutor keybored | 2011-02-09
Schreibe einen Kommentar