Jquery通过UL标记选择锚标记

时间:2011-09-23 17:23:48

标签: jquery siblings

我想在div中选择锚标记,但我想从子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"); });
  });
})

UL代码的CSS如下:

ul {display:none;}

现在已隐藏UL,我想使用UL选择锚点。上面的函数现在正在工作,因为它正在选择DIV作为父级,并且在单击div时会显示ul,但是因为div的大小与锚标记的大小相同所以如果有人点击div就像点击它一样作为锚点的子项,当点击锚点时,浏览器的默认行为是滚动到顶部,因为 href ='#'。我想通过使用 event.preventDefault();

选择该锚来停止滚动

告诉我通过UL

选择锚标记的方法

1 个答案:

答案 0 :(得分: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/