Страницы: 1
Добрый день.
Есть такая проблема: в диалоговом окне есть листбокс мультиселектовый. Я его динамически заполняю посредством appendItem(), после этого через addItemToSelection() выбираю некоторые элементы. Список длинный, со скроллом и проблема в том, что элементы, видимые (на первой "странице") - визуально выделяются (подсвечиваются), все элементы, которых изначально не видно - визуально не выделяются и при клике на них элемент не подсвечивается как выделенный, хотя внутренне они выделяются/снимается выделение.
Поведение элемента весьма странное, у кого-нибудь есть идеи в чем тут дело?
Отсутствует
есть идеи в чем тут дело
нет такой идеи, есть идея по workaround: выделять элементы списка посредством item. setAttribute ("selected", "true")
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
есть идеи в чем тут дело
нет такой идеи, есть идея по workaround: выделять элементы списка посредством item. setAttribute ("selected", "true")
Я пробовал ручками создавать menuitem, делать ему selected = true, после этого эти элементы были таки выбраны, но selection с них не снимался
Отсутствует
А если вызывать перед addItemToSelection метод ensureElementIsVisible ? Вроде работает.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо, стало лучше. Но не во всех случаях такая комбинация срабатывает, то есть периодически появляются вот такие не выделенные визуально элементы. Пока не могу уловить закономерность.
Отсутствует
У меня аналогичная проблема Решения пока не нашли ?
Отсутствует
Codeblight пишетУ меня аналогичная проблема Решения пока не нашли ?
В данном случае, я выкрутился с помощью type="checkbox" у menuitem.
Мне к сожалению такой вариант не подойдет, т.к. надо обычный листбокс не мультиселектовый. Пробовал выделять вручную элементы атрибутом selected - "заглохшие" не выделяются.
Отсутствует
Зря я кстати панику поднял если выделять так, то все работает
var my_list = document.getElementById('my_search_select'); var items = my_list.getElementsByTagName('listitem'); for (var i = 0; i < items.length; i++) { if (items[i].getAttribute('value') == my_id) { my_list.scrollToIndex(i); my_list.selectItem(my_list.getItemAtIndex(i)); break; } }
Причем если написать items[i].value - то браузер ругается на запредельный индекс и еще чего-то там хотя если 2 раза сделать одно и то же - то начинает тоже работать ;0)
Отсутствует
Зря я кстати панику поднял если выделять так, то все работает
Выделить кодКод:
var my_list = document.getElementById('my_search_select'); var items = my_list.getElementsByTagName('listitem'); for (var i = 0; i < items.length; i++) { if (items[i].getAttribute('value') == my_id) { my_list.scrollToIndex(i); my_list.selectItem(my_list.getItemAtIndex(i)); break; } }Причем если написать items[i].value - то браузер ругается на запредельный индекс и еще чего-то там хотя если 2 раза сделать одно и то же - то начинает тоже работать ;0)
эээээ, если не мультиселектовый листбокс, то достаточно листбоксу в value записать искомое значение, а он сам выберет нужный элемент
Отсутствует
эээээ, если не мультиселектовый листбокс, то достаточно листбоксу в value записать искомое значение, а он сам выберет нужный элемент
Ну да, так я и делал... элемент для FF выбран, но не подсвечен (и не подсвечивается больше хоть закликайся). Проскрул для него до селекшина ничего не дает. Мой способ описанный выше глючит меньше но точно так же глючит (закономерности не нашел).
Отсутствует
Страницы: 1