javascriptのスコープに問題があります。 jqueryプラグインを使用して、ドロップダウンコントロールのラッパーであるクラスを作成しています。JavaScriptスコープの問題
問題がloadJsonList
関数にある場合、メソッドが存在しないため、this.addOption(s.itemValue, s.itemText);
の呼び出しは機能しません。私はJSが奇妙なスコープを持っていることを知っていますが、私はそのスコープでその関数をどのように実行できるのか分かりませんでしたか?
jQuery.Class.extend("DDL",
{
id: '',
isTelerik: false
},
{
init: function (newid) {
this.Class.id = newid;
},
getValue: function() {
return $('#' + this.Class.id).val();
},
getText: function() {
return $('#' + this.Class.id + ' :selected').text();
},
setValue: function (newValue) {
try {
$('#' + this.Class.id).val(newValue);
} catch (err) {
alert(err);
}
},
setText: function (newText) {
try {
$('#' + this.Class.id + ' :selected').text(newText);
} catch (err) {
alert(err);
}
},
loadJsonList: function (list, param1, param2, param3) {
this.clearItems();
//init the service
var j = new JsonRPC();
// get the cut down data table
var dt = j.getDropDownData(list, param1, param2, param3);
// parse the datatable and load it into the telerik combo box
jQuery.each(dt, function (i, s) {
this.addOption(s.itemValue, s.itemText);
});
},
addOption: function (value, text) {
$('#' + this.Class.id).append('<option value="' + value + '">' + text + '</option>');
},
removeOption: function (value) {
$('#' + this.Class.id + ' option[value="' + value + '"]').remove();
},
clearItems: function() {
$('#' + this.Class.id + ' option').remove();
}
});
は、少し知識をひけらかすことにします。 – slebetman