2013-05-23 9 views
4

Итак, у меня есть <div>, в котором содержатся мои сообщения в блоге. Его класс - .post. Я хочу, чтобы каждый раз, когда кто-то нажимает на последние сообщения в области виджетов, содержимое загружается через Ajax вместо обновления страницы.Загрузка сообщений Wordpress через Ajax

Вот мой код

jQuery(function() 
{ 
    jQuery(".umrp-list li a").click(function(){ //here I select the links of the widget 
     var post_url = jQuery(this).attr("href"); 
     jQuery(".post").html('<div class="loading">Loading Content...</div>'); 
     jQuery(".post").load(post_url); 
     return false; 
    }); 
}); 

Поэтому у меня есть две проблемы

  1. Всякий раз, когда я нажимаю на «Последние сообщения» ссылка, содержимое нагрузки, где я хочу, чтобы загрузить, но мой веб-страница неактивна/заморожена в течение примерно 2 секунд после нажатия. Почему это происходит?

  2. Когда я нажимаю в первый раз, все работает, кроме описанной выше детали. Когда я нажимаю второй раз (другая ссылка или даже то же самое), то вместо того, чтобы загружать сообщение, которое я нажал, он загружает всю мою веб-страницу в этот контейнер .post. Есть идеи, почему это происходит?

+1

Что произойдет, если вы добавите действие 'preventDefault()' в код клика? Измените клик на: 'click (function (e) {' Затем добавьте 'e.prventDefault();' внутри функции. – ckpepper02

+0

Спасибо, но, к сожалению, он не сработал. – Stevenson

ответ

0

Таким образом, проблема заключалась в том, что на single.php (там хранится шаблон сообщения в блоге), я забыл стереть <?php get_header(); ?> и <?php get_footer(); ?> Теперь все отлично!

1

Похоже, вы отправляете запрос синхронно. Синхронные операции блокируются, тогда как асинхронные операции позволяют пользовательскому интерфейсу продолжать работу, пока операция завершается за кулисами.

Что касается второй проблемы, это звучит так, как jQuery (это) как-то указывает на документ вместо контекста элемента. Проверьте свое «это» значение во второй раз, и это, вероятно, даст вам некоторое представление.

+0

Привет, Дэвид. О синхронном/асинхронная вещь, мне нужно будет это проверить. Что касается 'this', я фактически протестировал его с помощью' alert (this) 'всякий раз, когда срабатывает щелчок, и URL-адрес на самом деле правильный, но он все равно его не загружает как это должно быть. Единственное, что я увидел, это то, что когда я нажимаю на него в первый раз, все косые черты '\' URL-адреса предупреждаются как косые черты, а во второй раз их предупреждают как «% 2F» – Stevenson

+0

@Stevenson Что такое значение jQuery («post») во второй раз через jQuery («post»). Load (post_url) ;? –

+0

Как я могу проверить, что Дэвид? – Stevenson

Смежные вопросы