Напишите плагин jQuery, который возвращает значения
Я пишу плагин JQuery, который хранит некоторые данные в некоторых случаях.
Я хотел бы написать это очень гибким способом, где я могу изменить входной параметр, чтобы получить некоторое значение, которое было сохранено плагином.
Объяснение:
Когда я звоню$("#any").myPlugin()
мой плагин инициализирует созданиеdiv
и немногоa
внутри. Нажав наa
будет хранить его.index()
с использованием.data()
метод. Если я позвоню$("#any").myPlugin("getSelection")
тогда я хотел бы получить значение, сохраненное с.data()
.
Что я попробовал:
(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);
Простой вызов для создания элементов:
$("#someElement").myPlugin();
И здесь я попытался получить индекс без успеха:
alert($("#someElement").myPlugin("getSelection"));
Итак, можно ли сделать то, что я пытаюсь?