2011-08-10 80 views
0

即時通訊嘗試使我的WordPress的鏈接加載到div而不是刷新頁面。在網上嘗試過一些教程,但他們似乎並沒有工作(或不完全)使用jquery將wordpress鏈接加載到div

我自己的試用版只會在每次提取我的最後一篇文章時(它確實會加載到div但它並不會生成其他文章,然後最後使所有的鏈接我點擊轉到同一職位。

人有一個想法,爲什麼這不工作?

非常感謝!

<?php while (have_posts()) : the_post(); ?> 

    <div class="WZ-OVER-wereldTitle"> 
    <a href="<?php the_permalink(); ?>" rel="<?php the_ID(); ?>"> 
    <?php the_title(); ?> 
    </a> 
    </div> 


<script> 
    $(document).ready(function() { 
     var postID = $('.WZ-OVER-wereldTitle a').attr('rel'); 
     $('.WZ-OVER-wereldTitle a').click(function() { 
      event.preventDefault(); 
      $('#content').html('loading...'); 
      $('#content').load('http://www.weetzelf.nl/?p=' + postID); 
      return false; 
     }); 
    }); 

</script> 

<?php endwhile; ?> 

回答

0

您正在試圖加載外部(跨域)請求使用.load。它不會工作。

替代方案:使用James Padolsey plugin然後調用它。這個工作到jquery1.4.4只有

演示:http://jsfiddle.net/YErfj/

+0

謝謝,我解決了這個問題,使用the_permalink爲loadedURL和the_ID選擇正確的a。 實際上現在我試圖用你的方法回到主索引頁(即時通訊不知道我是否理解ajax gd enuff atm,當我點擊一個標籤/貓並使用你的插件時,你得到了一個小技巧來使這個工作成爲可能)謝謝! –

0

,你做錯了最主要的是在這裏:

$('#content').load('http://www.weetzelf.nl/?p=' + postID); 

這樣做是你的內容加載到你的#content股利。但jQuery的load()方法將其目標的整個內容設置爲從load()返回的任何內容。這就是爲什麼你只能得到最後一篇文章 - 你實際上是一個接一個地成功加載所有文章,每個新文章都會替換上次加載的文章。

嘗試像

$('#content').append($('<div>').load('http://www.weetzelf.nl/?p=' + postID)); 

這將創造一個全新的div元素,內容加載到,並將它添加到您的#內容,而不是更換什麼是已經存在。

但是,您正在做的其他奇怪的事情是多次輸出jQuery部分,因爲它在php while循環中。正因爲如此,我認爲你最終會得到那些腳本的副本,因爲這些腳本都是發佈的,所有腳本都是以頁面加載的方式運行(一個接一個地運行)。在瀏覽器中檢查網站的源代碼,看看是否這樣是這樣的 - 我猜你會看到<script>塊的多個副本。

要解決該問題,請將腳本部分移至php while循環之外。你只需要它的一個副本。