2011-10-11 26 views
0

我有一個包含大量內容的主頁面,其中一個內容是一個小日曆。在主頁上獲取日曆以切換月份而不刷新頁面

對於日曆,我有一個上個月和下個月的鏈接。我想要做的是在幾個月之間切換,而不必刷新頁面。

<div id='cal_wrapper'> 
    <a href='main.php?month=$m&year=$y' class='selector'>Previous month</a> 
    <a href='main.php?month=$m&year=$y' class='selector'>Next month</a> 
    <?PHP   
    echo $calendar;  
    ?> 
</div> 

的Javascript如下:

<script type="text/javascript"> 
$(document).ready(function() { 
$('#cal_wrapper a.selector').click(function(e){ 
    $('#cal_wrapper').load($(this).attr('href')); 
    e.preventDefault(); 
}); 
}); 
</script> 

正在發生的事情是,當我要麼上一頁/下一頁點擊整個頁面重新加載到cal_wrapper格.. ???我卡住了。

回答

0

也許嘗試把e.preventDefault()第一,即:

$('#cal_wrapper a.selector').click(function(e){ 
    e.preventDefault(); 
    $('#cal_wrapper').load($(this).attr('href')); 
}); 
+0

相同的結果。謝謝。 – DanielOlivasJr

+0

對我來說,問題出在$('#cal_wrapper')。load($(this).attr('href'));線。我沒有閱讀jquery很多,但似乎像它的加載「this」頁面一遍又一遍地進入cal_wrapper div。 – DanielOlivasJr

0

如果我明白你的問題吧,我想你想$(this).attr('href')指的$('#cal_wrapper a.selector') href屬性。取而代之的是,$(this)在這一點上實際上是指$('#cal_wrapper')元素,而不是$("#cal_wrapper a.selector')元素。

如果這是正確的,你可能需要做的是存儲$('#cal_wrapper')在臨時變量,即,

$('#cal_wrapper a.selector').click(function(e) { 
    var o = $(this); 
    $('#cal_wrapper').load($(o).attr('href')); 
    e.preventDefault(); 
}); 
+0

嘗試過,仍然發生同樣的事情。不過謝謝。 – DanielOlivasJr

+0

奇怪,而且你的代碼應該可以正常工作。在你的代碼中,嘗試輸出(或提醒,不管)$(this).attr('href')的值作爲你的點擊處理程序的第一行。這是正確的網址嗎?當我用OP中的代碼對其進行測試時,它是爲我準備的。 –