jQueryプラグインを上書きするパラメータ
-
19-09-2019 - |
質問
この場合も平凡な質問ですが、このjQueryプラグイン私が書いてはちょっとしたファジィ理解の範囲のルールが可能です。
ようにしている、簡単なjQueryプラグインのロッドやルアーを使用することをスタックオーバーフローします。私は始めのアAPIに含まれています。
を作りたいと思ったのは、プラグインとして設定可能として可能であることがわかりやすいでにドメインやユーザー id、および複数のFlairs.
var superUser = $.jStackOverflow.flair({domain:"superuser.com", id: 30162, parentId:'#su-flair'});
var stackOverflow = $.jStackOverflow.flair({domain:"stackoverflow.com", id: 55954, parentId:'#so-flair'});
問題は、この目でなんとかを使用し、正しいドメインidのパラメータが、parentId分野での利用コールバック関数内で、HTMLでの最初のパラメータとします。
解決
更新
/* 16/02/2012 02.04.38 */
(function($) {
$.fn.jStackOverflow = function(options) {
var opts = $.extend({},
$.fn.jStackOverflow.defaults, options);
return this.each(function() {
$this = $(this);
var opt = $.meta ? $.extend({},
opts, $this.data()) : opts;
var result;
var id = this.id;
var flair = $.fn.jStackOverflow.flair(opt, id);
$this.html(flair);
});
};
$.fn.jStackOverflow.setApis = function(options) {
var apis = options.protocol + options.domain + options.gTLD + "/users/flair/" + options.id + "." + options.format;
if (options.makeCallbacks) {
apis += "?callback=?";
}
return apis;
};
$.fn.jStackOverflow.flair = function(options, id) {
var api = $.fn.jStackOverflow.setApis(options);
if (options.makeCallbacks) {
result = $.getJSON(api,
function(data) {
$.fn.jStackOverflow.flairCallback(data, options, id);
});
}
return result;
};
$.fn.jStackOverflow.flairCallback = function(data, options, id) {
for (var key in data) {
if (data.hasOwnProperty(key)) {
$('<div class="' + key + '"></div>').html(key + ' : ' +data[key]).appendTo('#' + id);
}
}
};
$.fn.jStackOverflow.defaults = {
protocol: 'http://',
domain: 'stackoverflow',
gTLD: '.com',
format: 'json',
makeCallbacks: true
};
})(jQuery);
用途:
<div id="so-flair"></div>
$(function() {
$('#so-flair').jStackOverflow({domain:"stackoverflow", id: 91130 });
});
他のヒント
問題は簡単インスタンスの引き出しおよび設定ができますこの二つの通話を $.jStackOverflow.flair()
が互いに干渉しても操作interalデータを単一のオブジェクトです。
チェックデモうなものがある場合、遅延の呼び出しをクリックし、ボタンを押下)
http://jsbin.com/esovu (編集 http://jsbin.com/esovu/edit
突然です。りにご利用いただけますこの問いに対する答えを求めるプラグインを書く対応した複数のインスタンスを単一ページです。
することができるので他の"jQueryプラグインをインスタンスが複数の支援を確認のことを思い出します。
例えば jQueryカルーセル.
れていることを確認し、メニュラインとの交流を複数作成カルーセルインスタンスを一画面(コードからjQueryカルーセルソース)
$.fn.jcarousel = function(o) { //this would match your `jStackOverflow`
return this.each(function() { //for each matched element return a new carousel
new $jc(this, o);
});
};
...
var defaults = {
...
};
...
$.jcarousel = function(e, o) { //the acutal constructor
...
}
...
$jc.fn.extend({
...
});
所属していません StackOverflow