私はjQueryプラグインを書き始めていると私のことができるようにしたい:私は(「ビューポート」、「ローダー」のような)一部のメンバーを使用し jQueryプラグインを作成する私の方法は正しいですか?
$('selector').sitemap(options);
このようにそれを呼び出すとき
- はそれを初期化する機能で
リガード第一の問題プラグイン:私は、初期化(init関数)を書いたか、それを行うには、より正確な/エレガントな方法があるように、正確にそれを行っていますか?
第2の問題については、: 'loader'、 'viewPort'のようなメンバーを使用するために、私はすべての関数をsitemapオブジェクトに書きました。私はそれを正しくやったことがありますかそれを行うにはより正確でエレガントな方法がありますか?
jQueryのドキュメントのページにjQueryのためのプラグインを作成する方法についていくつかの素晴らしいドキュメントがあり(function ($) {
$.extend($.fn, {
sitemap: function (options) {
//check if applied on valid DIV element
var canvas = this;
if (!canvas.is('div')) return;
var viewPort = null;
var loader = $('<p id="initLoader">Loading...</p>');
init();
loadMap();
function init() {
//create viewPort div
setCanvas();
}
function setCanvas() {
//set height and width
}
function loadMap() {
viewPort.prepend(loader);
buildMap($.parseJSON('{"pages":[]}'));
}
function buildMap(map){
//...
}
})(jQuery);
あなたは 'sitemap()'と 'Sitemap()'関数を持つことをお勧めしますか? – ZeissS
@ ZeissS私の命名規則はかなり悪かった。より適切な名前を選択する彼の 'sitemap'について私はあまり知らない。 1つは内部の「Sitemap」オブジェクトで、もう1つはjqueryに渡されるラッパー関数です。それは賢明ではありませんが、私はより多くの情報なしに良い選択肢を提案することはできません。 – Raynos
Raynos、ありがとう、あなたのコードです。それは私に多くを助けた!!!私はあなたのコードを[この記事](http://docs.jquery.com/Plugins/Authoring)と組み合わせました。 – theateist