0
所以基本上我有幾個鏈接,當你點擊一個,它應該添加突出顯示的類。我也有一個按鈕,點擊時應隱藏突出顯示的類的鏈接。通過jQuery隱藏動態高亮的元素類
這似乎微不足道,應該很簡單,但我不明白爲什麼我的代碼不起作用。另一件事是,出於某種原因,鏈接仍然通過一次點擊小提琴。不確定它是否與jsfiddle有關,以及它如何處理外部鏈接?
這裏是我的小提琴:http://jsfiddle.net/ZPGe7/1/
所以基本上我有幾個鏈接,當你點擊一個,它應該添加突出顯示的類。我也有一個按鈕,點擊時應隱藏突出顯示的類的鏈接。通過jQuery隱藏動態高亮的元素類
這似乎微不足道,應該很簡單,但我不明白爲什麼我的代碼不起作用。另一件事是,出於某種原因,鏈接仍然通過一次點擊小提琴。不確定它是否與jsfiddle有關,以及它如何處理外部鏈接?
這裏是我的小提琴:http://jsfiddle.net/ZPGe7/1/
你不應該緩存jQuery對象,因爲當元件接收不同的類名稱不更新。此外,請使用event.preventDefault()
來防止鏈接被跟蹤。在代碼中直接使用$('.links a.highlight')
。
小提琴:http://jsfiddle.net/ZPGe7/2/
$(function() {
$('.links a').live('click',function(ev){
$('.links a.highlight').removeClass('highlight');
$(this).addClass('highlight');
ev.preventDefault(); //Prevent link from being followed
});
$('#submit').live('click',function(){
$('.links a.highlight').hide();
});
});
謝謝羅布的偉大工程!所以返回false與防止默認值,區別只是阻止默認做什麼返回false做的加上它不會緩存類? – Maverick
嗯......爲什麼我們不能像原始的小提琴那樣使用聲明的變量? – Maverick
@Maverick在你的代碼中,你正在緩存'$('。links a.highlight')'選擇器。這導致'click'事件(綁定到'#submit')的行爲不如預期:''a.highlight'元素的「舊」列表是空的,並且在元素的類名改變時不會更新。 –