Второй подход, в котором я жестко кодирует входные идентификаторы и подключаю их к событиям onclick, работает правильно.различные способы присвоения событий onclick dojo
Но, когда я использую первый подход, он не работает. Код выполняется таким образом.
select1.on('change',function(evt) {
requiredFunction(select8.id);//select9 is not present (so I changed loop end value from inputs.length -1 to inputs.length -2)
}
Я пропустил некоторые правила обработки событий в додзё?
Approach1:
function assignOnClickEvents(table) {
var inputs = document.getElementById(table).getElementsByClassName('classname');
for (var i = 0; i < (inputs.length - 1); i++) {
dijit.byId(inputs[i].id).on('change', function (evt) {
requiredFunction(inputs[i+1].id);
});
}
}
Approach2:
function assignOnClickEvents() {
var select1 = dijit.byId('select1');
var select2 = dijit.byId('select2');
var select3 = dijit.byId('select3');
var select4 = dijit.byId('select4');
var select5 = dijit.byId('select5');
var select6 = dijit.byId('select6');
var select7 = dijit.byId('select7');
var select8 = dijit.byId('select8');
var select9 = dijit.byId('select9');
select1.on('change', function (evt) {
requiredFunction('select2');
});
select2.on('change', function (evt) {
requiredFunction('select3');
});
select3.on('change', function (evt) {
requiredFunction('select4');
});
select4.on('change', function (evt) {
requiredFunction('select5');
});
select5.on('change', function (evt) {
requiredFunction('select6');
});
select6.on('change', function (evt) {
requiredFunction('select7');
});
select7.on('change', function (evt) {
requiredFunction('select8');
});
select8.on('change', function (evt) {
requiredFunction('select9');
});
}
Я только что проверил в Инструментах разработчика, что dijit.byId (document.getElementById ('tablenameFromParameter'). GetElementsByClassN ame ('classname') [i] .id) возвращает [Widget dijit.form.Select, accountNameSelectForExcel (AC) ], который является виджетами. Хотя dijit.findWidgets ('tablenameFromParameter') ничего не возвращает. Хотя, я возвращаю DOM Nodes, я получаю виджет Dijit, используя dijit.byId (DOMNode.id) – Sandy