Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№121-02-2007 16:21:42

foxthrot
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 21-02-2007
Сообщений: 5
UA: Firefox 1.5

выделение элементов в listbox скриптом

Добрый день.

Есть такая проблема: в диалоговом окне есть листбокс мультиселектовый. Я его динамически заполняю посредством appendItem(), после этого через addItemToSelection() выбираю некоторые элементы. Список длинный, со скроллом и проблема в том, что элементы, видимые (на первой "странице") - визуально выделяются (подсвечиваются), все элементы, которых изначально не видно - визуально не выделяются и при клике на них элемент не подсвечивается как выделенный, хотя внутренне они выделяются/снимается выделение.

Поведение элемента весьма странное, у кого-нибудь есть идеи в чем тут дело?

Отсутствует

 

№223-02-2007 15:04:09

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: выделение элементов в listbox скриптом

есть идеи в чем тут дело

нет такой идеи, есть идея по workaround: выделять элементы списка посредством item. setAttribute ("selected", "true")


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№323-02-2007 15:38:43

foxthrot
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 21-02-2007
Сообщений: 5
UA: Firefox 1.5

Re: выделение элементов в listbox скриптом

Anton пишет

есть идеи в чем тут дело

нет такой идеи, есть идея по workaround: выделять элементы списка посредством item. setAttribute ("selected", "true")

Я пробовал ручками создавать menuitem, делать ему selected = true, после этого эти элементы были таки выбраны, но selection с них не снимался:)

Отсутствует

 

№423-02-2007 17:20:31

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: выделение элементов в listbox скриптом

А если вызывать перед addItemToSelection метод ensureElementIsVisible ? Вроде работает.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№530-03-2007 13:55:14

foxthrot
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 21-02-2007
Сообщений: 5
UA: Firefox 1.5

Re: выделение элементов в listbox скриптом

Спасибо, стало лучше. Но не во всех случаях такая комбинация срабатывает, то есть периодически появляются вот такие не выделенные визуально элементы. Пока не могу уловить закономерность.

Отсутствует

 

№613-10-2007 17:23:29

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.2

Re: выделение элементов в listbox скриптом

У меня аналогичная проблема ;) Решения пока не нашли ? :)

Отсутствует

 

№713-10-2007 17:27:10

foxthrot
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 21-02-2007
Сообщений: 5
UA: Firefox 2.0

Re: выделение элементов в listbox скриптом

Codeblight пишет

У меня аналогичная проблема ;) Решения пока не нашли ? :)

В данном случае, я выкрутился с помощью type="checkbox" у menuitem.

Отсутствует

 

№813-10-2007 18:20:37

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.2

Re: выделение элементов в listbox скриптом

foxthrot пишет
Codeblight пишет

У меня аналогичная проблема ;) Решения пока не нашли ? :)

В данном случае, я выкрутился с помощью type="checkbox" у menuitem.

Мне к сожалению такой вариант не подойдет, т.к. надо обычный листбокс не мультиселектовый. Пробовал выделять вручную элементы атрибутом selected  - "заглохшие" не выделяются. :(

Отсутствует

 

№913-10-2007 20:27:46

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.2

Re: выделение элементов в listbox скриптом

Зря я кстати панику поднял ;) если выделять так, то все работает

Выделить код

Код:

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)

Отсутствует

 

№1013-10-2007 21:52:46

foxthrot
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 21-02-2007
Сообщений: 5
UA: Firefox 2.0

Re: выделение элементов в listbox скриптом

Codeblight пишет

Зря я кстати панику поднял ;) если выделять так, то все работает

Выделить код

Код:

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 записать искомое  значение, а он сам выберет нужный элемент

Отсутствует

 

№1113-10-2007 23:57:13

Codeblight
Участник
 
Группа: Members
Зарегистрирован: 03-03-2007
Сообщений: 58
UA: Opera 9.2

Re: выделение элементов в listbox скриптом

эээээ, если не мультиселектовый листбокс, то достаточно листбоксу в value записать искомое  значение, а он сам выберет нужный элемент

Ну да, так я и делал... элемент для FF выбран, но не подсвечен (и не подсвечивается больше хоть закликайся). Проскрул для него до селекшина ничего не дает. Мой способ описанный выше глючит меньше но точно так же глючит (закономерности не нашел).

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]