現在、JSON Webサービスの色をドロップダウンリストに読み込むJQueryプラグインを作成しています。 ドロップダウンリストの背景色は、選択した値に応じて変化します。ほとんどの場合、それは働いています。どのような通常の変更でも、期待通りに動作しますが、私が持っている問題は、最初のページの読み込み時にtriggerHandler( "change")を使用しています。そしてそれが引き金が、私はそれがドロップダウンリスト上の色の変化を引き起こさないように、ページのロードのドロップダウンリストから選択した値に未定義のエラーを得ているようだ
私のコードは次のとおりです。
$.fn.bindColorsList = function (options) {
var defColor = options.defaultColor;
var svcUrl = options.svcurl;
//var f_target = options.filterTarget;
var $this = this;
$.ajax({
url: options.svcurl,
dataType: 'json',
/*data: { filter: src_filt },*/
success: function (fonts) { fillcolors(fonts, $this) },
error: function() { appendError(f_target, "colors failed to load from server") }
});
this.on("change", function (event) {
log($(event.target).attr("id") + " change detected");
//change ddl dropdown color to reflect selected item ;
var hcolor = $this.find('option:selected').attr("name");
$this.attr("style", "background-color:" + hcolor);
});
function fillcolors(colors, target) {
$(target).empty();
$.each(colors, function (i, color) {
$(target).append("<option name='"+color.HexValue+"' value='" + color.Name + "' style='background-color:"+color.HexValue+"'>"+color.Name+"</option>");
});
};
//in a seperate file
$(document).ready(function() {
$("#dd-font-color").bindColorsList({ svcurl: "/home/colors"});
$("#dd-back-color").bindColorsList({ svcurl: "/home/colors" });
});
適切なスペルと句読点を使用すると、テキストを読みやすくなります。それを正しくフォーマットしてください:http://meta.stackexchange.com/a/128558/142802私は文章の始まりと終わりを見ることさえできません。 –
問題のデモを作成できますか? – Starx
'this 'の代わりに' $ this'を使うのは、両方が同じものを指していて、混乱する必要はなく、選択に沿って矛盾が生じるかもしれません。 – Starx