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?