0

我想在 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 选择锚标签的方法

4

1 回答 1

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/

于 2011-09-23T17:30:58.940 回答