我使用jQuery構建了一個簡單的列表過濾器。我有一些類別div #filter
和div #itemlist
中的一些項目。通過點擊一個項目(超鏈接),頁面的內容通過.load加載到下面的div #content
。當選擇一個類別時,不屬於這個類別的項目會得到一個「不活躍」類別,並呈灰色。通過jQuery禁用href和.click
現在,灰色的物品應該是不可點擊的。
我已經嘗試過不同的方法,但似乎沒有爲我工作。
removeAttr('href')
不起作用, 因爲.load功能仍然 試圖獲取內容- 與
preventDefault
- 同樣的事情,我想
.bind('click', false);
但 真的不知道放在哪裏,爲 這些項目全部可點擊頁面 加載,但在稍後沒有 重新加載頁面時被禁用。
這裏是我的代碼過濾項目:
$('#filter li a').click(function() {
// fetch the class of the clicked item
var ourClass = $(this).attr('class');
// reset the active class on all the buttons
$('#filter li').removeClass('current');
// update the active state on clicked button
$(this).parent().addClass('current');
if(ourClass == 'all') {
// show all items
$('#itemlist').children('li').removeClass('notactive');
}
else {
// hide all elements that don't share ourClass
$('#itemlist').children('li:not(.' + ourClass + ')').addClass('notactive');
// show all elements that do share ourClass
$('#itemlist').children('li.' + ourClass).removeClass('notactive');
}
return false;
});
而這裏的AJAX調用需要被禁用/啓用,以及:
$.ajaxSetup({cache:false});
$("#itemlist a").click(function(){
var $itemlink = $(this).attr("href");
$("#content").html('<p><img src="ajax-loader.gif" /></p>');
$("#content").load(""+$itemlink+" #content > *");
return false;
});
感謝您的幫助!
它將如果你能投入到對[的jsfiddle]測試用例這是極大的讚賞(http://jsfiddle.net) – mekwall 2011-05-19 10:21:27