このエラーは私を夢中にさせています! とにかく、「ボーダー」と呼ばれる単純な jQuery プラグインを作成しましたが、次のエラーが発生します。
キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にはメソッド 'border' がありません
記録のために、jQuery は1 回だけ含まれており、私のプラグインの前に含まれています。
競合を避けるためにこれを使用しました:
<pre>
var $jq = $.noConflict();
//$.noConflict();
$jq("li").borderX('1px solid blue');
</pre>
編集 :
これは私のプラグインのコードです:
jQuery(document).ready(function ($) {
$.fn.borderX = function (params) {
params = $.extend({width: 'null', color: 'null', radius: 'null'}, params);
this.each(function () {
var $t = $(this);
var response = jQuery.parseJSON(params);
if (typeof response == 'object') { //It is JSON
if (params.width) {
$t.css('border-width:', params.width);
}
if (params.color) {
$t.css('border-color:', params.color);
}
if (params.radius) {
$t.css('border-radius:', params.radius);
}
} else {
$t.css('border', params);
}
});
return this;
};
});
「borderX」という名前のプラグインを呼び出す HTML コードは次のとおりです。
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.borderX.js"></script>
<script type="text/javascript">
var $jq = $.noConflict();
//$.noConflict();
$jq("li").borderX('1px solid blue');
</script>
編集 °2 :
$.fn.border = function (options) {
var params = $.extend({width: 'null', color: 'null', radius: 'null'}, options);
this.each(function () {
var $t = $(this);
var response = jQuery.parseJSON(params);
if (typeof response == 'object') { //It is JSON
if (params.color) {
$t.css('border-color:', params.color);
}
if (params.radius) {
$t.css('border-radius:', params.radius);
}
} else {
$t.css('border', params);
}
});
return this;
};