2011-09-23 79 views
0

我想在div中選擇錨標籤,但我想從子ul標籤中選擇,因爲我試圖創建一個下拉列表。Jquery通過UL標籤選擇錨標籤

我的HTML代碼如下:

<div> 
    <a href='#'>Dropper 1</a> 
    <ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
    </ul> 
    <a href='#'>Dropper 2</a> 
    <ul> 
    <li>Item 4</li> 
    <li>Item 5</li> 
    <li>Item 6</li> 
    </ul> 
</div> 

我jQuery代碼是如下:

$(document).ready(function(){ 
    $('ul').each(function(){ 
    $(this).parent().click(function(){ $('ul',this).show("1000"); }); 
    $(this).parent().mouseleave(function(){ $('ul',this).hide("1000"); }); 
    }); 
}) 

CSS的UL代碼如下:

ul {display:none;} 

現在UL隱藏,我想選擇使用UL的錨點。上面的函數現在正在工作,因爲它選擇DIV作爲父項,並且在單擊div時顯示ul,但是因爲div的大小與定位標記的大小相同,所以如果有人單擊div,與單擊div時相同孩子是錨點,當點擊錨點時,瀏覽器的默認行爲是滾動到頂部,因爲href ='#'。我想通過使用event.preventDefault()來選擇該錨點以停止滾動;

只要告訴我的方式一路過關斬將UL

回答

0

認爲來選擇錨標記,這是你想要的東西:

$('ul').each(function() { 
    $(this).prev('a').click(function(e) { 
     e.preventDefault(); 
     $(this).next().show("1000"); 
    }); 
    $(this).mouseout(function() { 
     $(this).hide("1000"); 
    }); 
}); 

http://jsfiddle.net/ghLCv/2/

+0

感謝您的回答,我嘗試過,但它不工作。 – Hamid

+0

@Heder:您的評論不是很有幫助。也許你可以解釋*什麼是不工作,你得到哪些錯誤,等等。 –

+0

mblase75謝謝你的迴應。我嘗試了你給定的代碼,它的工作原理與我想要的完全相同。只是將mouseout更改爲mouseleave,其他所有功能都正常。 – Hamid