Schreibe ein jQuery Plugin, das Werte zurückgibt

Ich schreibe ein jQuery-Plugin, das in einigen Fällen Daten speichert.

Ich möchte es sehr flexibel schreiben, wobei ich einen Eingabeparameter ändern kann, um einen Wert zu erhalten, der vom Plugin gespeichert wurde.

Erläuterung

Wenn ich anrufe$("#any").myPlugin(), mein Plugin initialisiert die Erstellung einesdiv und einigea Innerhalb. Klicken Sie auf eina wird es speichern.index() Verwendung der.data() Methode. Wenn ich @ anru$("#any").myPlugin("getSelection") dann möchte ich den Wert mit @ speichern lass.data().

Was ich versucht hatte:

(function ($) {
    $.fn.myPlugin = function (action) {
        if (action == null) action = "initialize";

        return this.each(function ($this) {
            $this = $(this);

            if (action == "initialize") {
                $this.html('<div></div>');
                var div = $("div", $this);

                div.append('<a>A</a>').append('<a>B</a>').append('<a>C</a>');

                div.children("a").each(function (i) {
                    $(this).click(function (event) {
                        // Here I store the index.
                        $this.data($(this).index());
                        event.preventDefault();
                        return false;
                    });
                });

                return $this;
            } else if (action == "getSelection") {
                // With this action, I tried to get the stored value.
                return $this.data("selectedValue");
            }
        });
    };
})(jQuery);

Einfacher Aufruf zum Erstellen der Elemente:

$("#someElement").myPlugin();

Und hier hatte ich versucht, den Index zu bekommen, ohne Erfolg:

alert($("#someElement").myPlugin("getSelection"));

Also, ist es möglich zu tun, was ich versuche?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage