ProDomainer.ru - Клуб Домейнеров  
     

Войти через OpenID
Left Nav Справка ПортфолиоАукцион (39) Календарь Поиск Сообщения за день Все разделы прочитаны Right Nav

Left Container Right Container
 
Старый 17.10.2011, 03:26   #1
Член Клуба ProDomainer.ru
 

Наговнокодил немного с jqueryUI как почеловечески?

Решил подпилить двиг под большую готовность к аяксу.
Задача в том, чтобы любая страница подгружалась полноценно, а потом при переходе по ссылкам контент бы перегружался по мере необходимости. Мне показалось удобным за основу меню взять виджет табс. Там с динамической подгрузкой менюха получается очень даже правильная - ссылка откуда скачивается контент == ссылке по которой тот же гугл к примеру увидит полную страницу (аяксовый запрос или полный определяю по $_SERVER['HTTP_X_REQUESTED_WITH']).
Вроде как все более менее заработало, но по умолчанию страничка всегда открыта главная.
Для того чтобы выбрать вкладку нужно передать селект. Но он ведь зависит от страницы. Вот здесь говорится, что нужно указывать номер табы. Но это некошерно, я хочу как-то указать #preloaded а не передавать из пхп {mainmenuid}. Вообще код с {mainmenuid} самое кривое место тут.
Код HTML:
...
		<script type="text/javascript">
			$(function() {
				$( "#mainmenu" ).tabs({selected: {mainmenuid},
					ajaxOptions: {
						error: function( xhr, status, index, anchor ) {
							$( anchor.hash ).html("Couldn't load this tab." );
						}
					}
				});
			});
		</script>
...
	</head>
	<body>
		<!-- mainmenu -->
		<div id="mainmenu">
			<ul>
				{array=mainmenu}
				<li><a href="{mainmenu.link}">{mainmenu.name}</a></li>
				{/array=mainmenu}
			</ul>
			<div id="preloaded">
{BODY}
			</div>
		</div>
	</body>
</html>
PHP код:
$n=$i=0;
foreach(
$mainmenu as $m) {if($m['link']=='#preloaded'$n=$i;$i++;}
$view->say('mainmenuid',$n); 

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 17.10.2011, 04:49   #2
Член Клуба ProDomainer.ru
 

Интересно будет посмотреть готовый код, т.к. я знаю такое, но вот ссылки такими не делаются.

Добавлено через 2 минуты
(Это был самый содержательный пост в теме.)

«А вы, друзья, как не садитесь,
Всё в музыканты не годитесь» ©
UFO вне форума   Ответить с цитированием
Старый 17.10.2011, 11:30   #3
Член Клуба ProDomainer.ru
 

Антон, я тебя не понял.

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 17.10.2011, 12:20   #4
Член Клуба ProDomainer.ru
 

Mendel, ну так бери #pagename и получай из нее нумер вкладки.
Но вообще
Цитата:
Сообщение от Mendel Посмотреть сообщение
самое кривое место тут
Цитата:
Сообщение от Mendel Посмотреть сообщение
за основу меню взять виджет табс
Вот тут пару библиотек есть.
http://yiiframework.ru/forum/viewtopic.php?f=9&t=3698

Добавлено через 35 секунд
Хотя не разбирался, но не табы точно в данном случае надо.


VaseninM вне форума   Ответить с цитированием
Старый 17.10.2011, 14:59   #5
Член Клуба ProDomainer.ru
 

Ну в идеале вообще подождать пока 1.9 выйдет: http://wiki.jqueryui.com/w/page/12137997/Menu
Вообще конечно табы не очень подходят поскольку ограничивают ссылки только из этой менюхи, плюс нет выпадающих списков, но все равно из преимуществ - мало кода надо таскать с собой - все библиотеки у гугла таскаем.

Цитата:
Сообщение от VaseninM Посмотреть сообщение
бери #pagename и получай из нее нумер вкладки
Собственно о том и вопрос как это сделать?

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 17.10.2011, 15:50   #6
Член Клуба ProDomainer.ru
 

Эт надо доки жса читать. Но вроде как получить анкор проблем быть не должно. Далее по id получаем элемент $(#ankor).attr('num'); Хотя почему то уверен, что есть более простые способы получить номер вкладки.


VaseninM вне форума   Ответить с цитированием
Старый 17.10.2011, 16:38   #7
Член Клуба ProDomainer.ru
 

Цитата:
Сообщение от VaseninM Посмотреть сообщение
Эт надо доки жса читать. Но вроде как получить анкор проблем быть не должно. Далее по id получаем элемент $(#ankor).attr('num'); Хотя почему то уверен, что есть более простые способы получить номер вкладки.
Вот собственно в том и вопрос - как получить номер. Конкретно. Теоретически я и сам понимаю что это как-то можно сделать оченб просто. Но как?

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 17.10.2011, 17:01   #8
Член Клуба ProDomainer.ru
 

Ну, each if attr(id) = ancor


VaseninM вне форума   Ответить с цитированием
Старый 17.10.2011, 17:06   #9
Член Клуба ProDomainer.ru
 

т.е. перенести говнокод из пхп в клиентскую часть? Нет спасибо Тут она менее заметна )))

В любой ситуации выбор всегда за вами. Вы либо гуляете под дождем, либо просто под ним мокнете.
Mendel вне форума   Ответить с цитированием
Старый 18.10.2011, 23:26   #10
Член Клуба ProDomainer.ru
 

что-то я сегодня "ниасилил"

http://rudevich.com
Александр вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
Быстрый переход


Часовой пояс GMT +4, время: 02:42.