2012-04-30 65 views
1

我使用此處的照片滑塊代碼:http://tympanus.net/codrops/2010/10/07/slider-gallery/並嘗試對其進行修改,以便將圖像下方的鏈接加載到新窗口中。jQuery - 除特定子女以外的選擇班級

例如:

<div class="content"> 
<div><a href="#"><img src="http://imageurl" alt="largeimageurl" /></a></div> 
<div class="caption"><a target="_blank" href="image.php?id=someid&svc=somesvc" rel="nofollow">More Info</a></div> 
</div> 

我已經嘗試了各種不同的東西與JavaScript文件,目前寫着:

$fp_content_wrapper.find('.content').bind('click',function(e){ 
    var $current = $(this); 
    //track the current one 
    current = $current.index(); 
    //center and show this image 
    //the second parameter set to true means we want to 
    //display the picture after the image is centered on the screen 
    centerImage($current,true,600); 
    e.preventDefault(); 
    }); 

我需要做的是改變這個第一行,以便它按正常方式選擇,但不會將任何內容應用於標題div,該標題div中包含鏈接,因此它的行爲正常。

我知道這裏有類似的問題,但我嘗試了大部分建議的問題。我根本沒有太多的JS經驗,所以很容易讓我做錯了。

感謝任何幫助!

+1

Whats your html code for the caption div?如果你的意思是你可以做'$ fp_content_wrapper.find('。content')。not('#caption')。bind('click',function(e){'或者改變''''''。如果它是一個類 –

+0

該代碼位於問題的第一個代碼塊中,嵌套在內容div中,我嘗試將caption div放在此外,但它導致了更多樣式的工作,最終可能會更容易做到這一點 –

+0

你說得對,我怎麼沒有看到這個! –

回答

1

試試這個:

$fp_content_wrapper.find('.content>*:not(.caption)').bind('click',function(e) ..... 

發生了什麼事是你選擇的內容標籤,而不是你想選擇什麼裏面,除了用.csption類東西。 '''表示直接在下面的元素,'*'表示全選。所以它轉化爲「選擇直接在下面的所有內容,而不是.caption類」。

如果你繼續使用jquery,在研究選擇器時是值得的。

祝你好運

+0

輝煌,按照它應該的原樣工作(可惜我們不得不在今天上午演示系統時演示系統: - /) 儘管肯定會有答案,但我可以在將來的實現中使用它。再次感謝! 你能解釋一下這個改動嗎,所以我明白它是什麼意思? –

+0

我已經包含了對你的解釋 – MrJD

+0

非常感謝,我現在明白了很多。 –

1

嘗試:

$fp_content_wrapper.find('.content:not(.caption)').bind("click", ... 
+0

試過這個,但不幸的是沒有影響標題鏈接。兩者仍然推出更大版本的圖像。 –

0

試試這個詹姆斯

$fp_content_wrapper.find('.content').bind('click',function(e){  
    if(!$(this).attr('class')) 
    { 
    var $current = $(this);  
    //track the current one  
    current = $current.index();  
    //center and show this image  
    //the second parameter set to true means we want to  
    //display the picture after the image is centered on the screen  
    centerImage($current,true,600);  
    e.preventDefault(); 
    } 
}); 

有一個更合適的方法來做到這一點,但這應該做的。這應該確保只有沒有類的div運行該函數。顯然要小心或改變邏輯,如果你想在另一個div上使用類。

乾杯

編輯:

尋找你的代碼再次,你也可以測試專區內的超級鏈接,以檢查它是否有alt屬性或什麼alt屬性後。這將是一個更具體的測試。

+0

感謝您的支持 - 仍然無法正常工作。我認爲該函數需要適用於主要內容div,而不僅僅是內部div(沒有類的內容)。 什麼是類似的代碼,以檢查類是否等於'標題'? 因此,如果(class!='caption'){code}以某種僞代碼 –