Здравствуйте, yuriy_b, Вы писали:
В Sciter <options> элемент не использзуется. Только <option>.
Проблему выделения MOUSE_CLICK/SHIFT не понял если честно.
Примитивный state automata:
function selectRange(select, optFirst, optLast) {
var insideRange = false;
// linear list of all option's:
for(var option in $$(select option))
{
if( insideRange ) {
option.state.checked = true; // mark selected options by :checked flag
if( option === optFirst || option === optLast ) {
insideRange = false;
}
} else { // not in range yet:
if( option === optFirst || option === optLast ) {
insideRange = true;
option.state.checked = true; // first element in range, mark it
} else {
option.state.checked = false; // mark as not selected
}
}
}
}
selectRange() снимает предыдущее выделение и ставит новое на всех элементах в [optFirst ... optLast] range.
Если optFirst и optLast оба null то просто снимает выдкление.
Вроде как просто, нет?