Показать сообщение отдельно
  #9 (permalink)  
Старый 15.03.2010, 16:38
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Если вкратце, есть плагин, он небольшой:
http://plugins.jquery.com/project/De...SelectbySilVeR
зависимых селектов, в котором зависимость одного селекта от другого указывается на основе tilte родителя, и class зависимого селекта.
В зависимости от того, что кидается ему внутрь, может работать в двух режимах.Когда несколько селектов зависят от одного, и когда зависимость по цепочке.

Я переделал его так, чтобы зависимость была не на основе title и class, а на основе value "опшионов", но это не важно.
Так вот. там есть ф-ция (практически не менял ее):
function _createHolder($holder, $holder_cls, $child, $child_id, $child_cls){		
		var $is_created = $($holder_cls+' '+$child_id).size();                
		if( $is_created == 0 ){
			$('body').append('\n\n<select class="'+$holder+' '+$child_id+'" style="display:none">\n</select>\n');
		}        
		$($child).find('option:not(:first)').each(function(){         
			$value = $(this).attr('value');
			$class = $(this).attr('class');
			$title = $(this).attr('title');
			$text  = $(this).text();
			$($holder_cls+$child_cls).append('<option    value="'+$value+'" class="'+$class+'" title="'+$title+'">'+$text+'</option>\n');
		});
            //$child - зависимый селект
            // $($holder_cls+$child_cls) - его скрытый

которая создает для каждого зависимого селекта скрытый селект (селект-хранилище),
в который складываются все option зависимого селекта, потом, по выбору определенных option из родительского селекта к зависимому из его скрытого добавляются соответствующие option.
Так вот: эта строчка
$($holder_cls+$child_cls).append('<option value="'+$value+'" class="'+$class+'"title="'+$title+'">'+$text+'</option>\n');

приводит к тому, что IE виснет, если в зависимом select много много option будет, видимо потому, что создается целая куча элементов option.
Ответить с цитированием