При открытии/закрытии блоков страница загружается сначала

Статус
В этой теме нельзя размещать новые ответы.

MvKozyrev

Постоялец
Регистрация
5 Май 2007
Сообщения
128
Реакции
74
Значит, подправляю RSS-агрегатор. Добавил скрытие/открытие каналов. Проблема в том, что при этом происходит перенос на начало страницы (т.е. вся страница сдвигается к началу). А хочется сохранить ту позицию, на которой находишься. Как сделать?

Вот код:
PHP:
function dasher_display_rss($beforeall='<td valign="top">',$afterall='</td>',$before='<div class="wrap">',$after="</div>",$beforefeed='<ul>',$afterfeed='</ul>',$beforeitem='<li>',$afteritem='</li>',$beforeheader='<h3>',$afterheader='</h3>') {
	global $dasher_options;
	$feeds = explode('|',$dasher_options['feeds_to_display']);
	if (count($feeds > 0)) {
		echo $beforeall . "\n";
		include_once (ABSPATH . WPINC . '/rss.php');
		echo '<h3>Лента новостей (RSS)</h3>';
		foreach ((array)$feeds as $feed) {
			$rss = @fetch_rss($feed);
			if ( isset($rss->items) && 0 != count($rss->items) ) {
	echo '
	<h3><a target=_blank href="' . $rss->channel['link'] . '">' . $rss->channel['title'] . '</a></h3>
    <a id="options_'.$feed.'_show" href="#" onClick="document.getElementById(\'options_'.$feed.'\').style.display=\'\'; this.style.display=\'none\'" style="display:none;"><small>[Показать]</small></a>
    <div id="options_'.$feed.'">
    <a href="#" onClick="document.getElementById(\'options_'.$feed.'\').style.display=\'none\'; document.getElementById(\'options_'.$feed.'_show\').style.display=\'\'"><small>[Скрыть]</small><br /><br /></a>

	';

	$rss->items = array_slice($rss->items, 0, 10);
	foreach ($rss->items as $item ) {
		echo "<a target=_blank href='" . wp_filter_kses($item['link']) . "'>" . wp_specialchars($item['title']) . "</a> — ";
		printf(__('%s ago'), human_time_diff(strtotime($item['pubdate'], time() ) ) );
		echo "<br />\n<p>" . $item['description'] . "</p>\n";
	}
	echo '</div>';
}
		}
		echo $afterall . "\n";
	}
}
 
href="#" поменяй на href="javascript://" например
 
Заработало! И всего делов-то?!

Sorry за флуд, но работает! Мать его, работает! И всего-то делов было. А я уже боялся, что начнут ajax'ы советовать :)

ЗЫ. Нажал спасибку. В свете последних событий - стараюсь не забывать.

ЗЗЫ. Такие восторги потому, что сначала насобирал в ленту 10 RSS каналов - получилась длиннющая простыня - читать невозможно. Долго искал по Нету, как сделать простое скрытие/раскрытие. Но тот, вариант (проблемный), что получился просто не имел смысла, т.к. если при 10 каналах происходил перенос на начало страницы, то найти нужное место представлялось весьма проблематичным. А сейчас - самое то, что надо. Уже 10 минут сижу и как дурак играюсь :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху