Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Переход из Select'а по ссылке (https://javascript.ru/forum/jquery/15507-perekhod-iz-select%27-po-ssylke.html)

Pekkonen 02.03.2011 02:44

Переход из Select'а по ссылке
 
Привет.
Прошу помочь справится с объединением 2-х скриптов в один.
Есть список ul-li, из которого делается select с помощью такого скрипта:
$(document).ready(function(){
$('ul').each(function(){
    var ul=$(this);
    var sel=$('<select/>');
    $('li',ul).each(function(){
        sel.append($('<option/>',{value:this.innerHTML,html:this.innerHTML}));
    });
    ul.hide().after(sel);
});

});

Это работает нормально.
Дальше надо добавить в этот скрипт возможность перехода по ссылкам (выбрали пункт - отпустили кнопку мыши - перешли по ссылке)
Вот такой select формируется первым скриптом:
<select id="select1">
	<option><a href="http://url1.com/">bar1</a></option>
	<option><a href="http://url2.com/">bar2</a></option>
	<option><a href="http://url3.com/">bar3</a></option>
	</select>

То есть нужно что-то похожее вставить в конец первого скрипта (только работающее, а ни как у меня... :)
$("#select1").click(function(){
     window.location=$(this).find("a").attr("href"); return false;
   });


Спасибо.

Pekkonen 02.03.2011 22:29

Попробую уточнить задачу.
мне нужен аналог такого select'a:
function goURL(){
		var url = $("#select1").attr("value");
		window.location = url;
	}

<select id="select1" onchange="javascript:goURL();">
	<option value="/">Home</option>
	<option value="http://google.com/">Google.com</option>
	<option value="http://ya.ru/">Ya.ru</option>
</select>

Только в моем случае ссылки жестко приписаны не в value, а так:
<option><a href="http://url3.com/">bar3</a></option>

Просьба не предлагать сделать из <a href="..."> <option value="..."> с помощью того же jquery (до такого я пока еще не дошел. :( )

lalala 04.03.2011 15:56

надеюсь, я правильно Вас понял...:)
$(document).ready(function(){
	
	$('ul').each(function(){
		var sel=$('<select/>');
		$('li',$(this)).each(function(){
			sel.append($('<option/>',{value:$(this).find("a").attr("href"),text:$(this).find('a').text()}));
		});
		$(this).hide().after(sel);
	});
	
	$('select').bind('change',function(){
		window.location = $(this).val();
	});
});


Часовой пояс GMT +3, время: 05:41.