場合によってはデータを保存する jQuery プラグインを作成しています。
入力パラメーターを変更して、プラグインによって保存された値を取得できる、非常に柔軟な方法で記述したいと思います。
説明:
を呼び出す$("#any").myPlugin()
と、プラグインが初期化され、内部にadiv
と someが作成されます。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"));
それで、私がしようとしていることをすることは可能ですか?