Я пишу плагин jQuery, который хранит некоторые данные в некоторых случаев.
Я хотел бы написать его очень гибким способом, где я могу изменить входной параметр, чтобы получить некоторое значение, которое было сохранено плагином.
Пояснение:
Когда я вызываю $ ("# любой").
При нажатии на
он будет сохранен .index ()
с использованием метода .data ()
.
Если я вызываю $ ("# any"). MyPlugin ("getSelection")
, то я хотел бы получить значение, сохраненное с помощью .data ()
.
What I ' d пробовал:
(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"));
Итак, можно ли сделать то, что я пытаюсь?