私はautoCompleteBoxのようなものを作成するカスタム機能を持つjQueryプラグインを作成しようとしています。一致するjQuery要素ごとにメンバ変数を保存するにはどうすればよいですか?jQueryプラグインにメンバー変数とパブリックメソッドを持たせるにはどうすればいいですか?
たとえば、それぞれにtimerIDを格納する必要があります。また、コントロールを構成するいくつかのDOM要素への参照を格納したいと思います。
私は何か作品パブリックメソッド作ることができるようにしたい:私はそのtimerIdのようなその特定のオブジェクトのメンバ変数にアクセスする方法を
$("#myCtrl").autoCompleteEx.addItem("1");
しかしのaddItem()の実装では何か?以下は
...私がこれまで持っているものすべてのヘルプや提案のための
感謝です!
(function($)
{
//Attach this new method to jQuery
$.fn.autoCompleteEx = function(options)
{
//Merge Given Options W/ Defaults, But Don't Alter Either
var opts = $.extend({}, $.fn.autoCompleteEx.defaults, options);
//Iterate over the current set of matched elements
return this.each(function()
{
var acx = $(this); //Get JQuery Version Of Element (Should Be Div)
//Give Div Correct Class & Add <ul> w/ input item to it
acx.addClass("autoCompleteEx");
acx.html("<ul><li class=\"input\"><input type=\"text\"/></li></ul>");
//Grab Input As JQ Object
var input = $("input", acx);
//Wireup Div
acx.click(function()
{
input.focus().val(input.val());
});
//Wireup Input
input.keydown(function(e)
{
var kc = e.keyCode;
if(kc == 13) //Enter
{
}
else if(kc == 27) //Esc
{
}
else
{
//Resize TextArea To Input
var width = 50 + (_txtArea.val().length*10);
_txtArea.css("width", width+"px");
}
});
}); //End Each JQ Element
}; //End autoCompleteEx()
//Private Functions
function junk()
{
};
//Public Functions
$.fn.autoCompleteEx.addItem = function(id,txt)
{
var x = this;
var y = 0;
};
//Default Settings
$.fn.autoCompleteEx.defaults =
{
minChars: 2,
delay: 300,
maxItems: 1
};
//End Of Closure
})(jQuery);
あなたは天才です...このために百万をありがとう! – Legend