@Exilend
Новичок в изучении web технологий.

Как сделать так чтобы страница после нажатия на ссылку не перезагружалась?

Здравствуйте. Есть блок новостей и форма создания новых. Новая новость через ajax заносится в базу и возвращается уже готовый блок
echo '<div class="news" data-id="0">
		<span class="date_span">'.$dateAdd.'</span>						
		<h2><a href="">'.$title.'</a></h2>
		<div class="text_from_news">
			<p>'.$text.'</p>
		</div>
	</div>';

Блок вставляется так
function funcSuccess(data){
		$(".block_news").prepend(data);
		reload();
}

Проблема заключается в том, что по нажатию на заголовок новости страница перезагружается, а должна просто раскрываться новость по скрипту
$('.news h2 a').click(function(){
    	$(this).parent('h2').parent('.news').children('.text_from_news').slideToggle();
      return false;
});

P.S. Добавил отдельную кнопку, раскрывающую первую новость, все отлично работает
$('#testButton').click(function(){    	
    	$('.news h2 a:first').parent('h2').parent('.news').children('.text_from_news').slideToggle();
    	return false;
});

Добавил html код в изначальную страницу, и он спокойно раскрывается по нажатию на заголовок
<div class="news" data-id="1">
	<span class="date_span">2 часа назад</span>
	<h2><a href="">Заголовок</a></h2>
        <div class="text_from_news">
            <p>Тема новости</p>
        </div>
</div>

Если писать href="#" ссылка не исчезает, но и не работает. Знаю что вопрос нубацкий. Подскажите, пожалуйста, куда копать.
  • Вопрос задан
  • 336 просмотров
Решения вопроса 1
В вашем случаи, когда контент подсасывается ajax-сом, вам надо вешать клик на ссылку вот так:
$(document).on('click', '.news h2 a', function(){
    	$(this).parent('h2').parent('.news').children('.text_from_news').slideToggle();
      return false;
});

Этот обработчик будет учитывать все ссылки удовлетворяющие селектору в том числе и добавленные динамически на страницу, а ваш вариант как раз ловит только ссылки, которые находились на странице изначально.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
4eloBek
@4eloBek
ученик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы