我是Javascript的新手,並且在使用NOT選擇器時遇到了一些問題,並且在功能,希望這會對某人有意義。JQuery:使用:not(.active)選擇器,並添加一個Active類到選定的項目
我正在創建一個小畫廊,我的目標是有可點擊的導航,但是點擊後活動圖片會重定向到另一個頁面。
代碼如下:
$("ul#mainGallery li:not(.active) a").click(function(){
var thisListClass = $(this).parent().attr('class');
var activeListId = $(this).parent().attr('id');
var newMarginLeft = (activeListId-3) * -200;
var animateAction = {};
animateAction['margin-left'] = newMarginLeft + 'px';
$("ul#mainGallery").animate(animateAction, 1000);
$('li.active img').animate({width:'100px', height:'100px'},1000)
$(this + 'img').animate({width:'300px', height:'300px'},1000)
$(li.active).removeClass('active');
$(this).parent().addClass('active');
return false;
我知道有可能是一個更好的方法來做到這一點,但我不能讓我的頭周圍。
編輯:我也許應該說是什麼問題...
當點擊一個活動圖像,它遵循的超級鏈接一切都很好。
當一個非活動圖像被點擊時,它開始動畫,然後(我假設)當'活躍'類被添加,而不是返回false,它返回true,並跟隨超鏈接。
閱讀更多關於[不選擇](http://api.jquery.com/not-selector/) – Ibu 2011-05-30 20:26:29
你真的在第三行到最後一行有'$(li.active)'或'$('li.active')'嗎?也是第四到最後一行可能沒有做任何事情,因爲什麼是「this」,你的意思是'$('#'+ this.id +'img')'?如果你有運行時錯誤(比如'li'沒有定義,並且你正在嘗試獲得'active'屬性,那麼返回false將會發生並且鏈接*將會被* – lambacck 2011-05-30 21:06:32
啊,謝謝,我錯過了那個''第四行最後一行正在工作,雖然可能寫得更好,但它選擇的是這個圖像($(this)是一個列表項) – CharlesRock 2011-05-30 21:30:56