一页上有多个 jquery 下拉菜单

发布于 2024-09-25 09:38:24 字数 555 浏览 4 评论 0原文

我是 jquery 新手,我正在尝试制作一个下拉菜单列表,如 www.teefury.com (男士和女士尺寸)。我非常接近,但是当我单击其中一个按钮时,所有按钮都会打开(或者在我第二次尝试时仅尝试第一个按钮)。因此我的问题是:

  • 有谁知道我可以为此使用的教程吗?
  • 尝试自己创建一个的最佳方法是什么? (我已准备好 html 和 css)
  • 如何才能在单击时仅打开其中一个下拉列表,而不是全部或仅打开第一个?

这是我到目前为止所拥有的: http://users.telenet.be/ezarto/dropdown/

PS:这也是我的第一个 stackoverflow,请告诉我我做错了什么:)

PSS:只允许 1 个超链接,抱歉,但你必须复制/粘贴 teefury一个

I'm new to jquery and i'm trying to make a dropdown menu list like on www.teefury.com (mens and woman sizes). I came pretty close but when i click 1 of the buttons all of them open (or on my second try only the first one). Thus my questions:

  • Does anyone know a tutorial i can use for this?
  • What's the best way to try and create one on my own? (i have the html & css ready)
  • How do i make it so only 1 of the dropdowns will open on click and not all of them or only the first one?

This is what i have so far: http://users.telenet.be/ezarto/dropdown/

PS: this is also my first stackoverflow, please inform me of anything i did wrong :)

PSS: only 1 hyperlink allowed, sorry but you'll have to copy/paste the teefury one

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

盗琴音 2024-10-02 09:38:24

使用 this 并遍历 DOM 以找到您想要显示的适当列表。我重构了你的 JavaScript 来做到这一点。

$(function() {

 $(".dropdown dt a").click(function() {
   $(this).closest('dt').siblings('dd').find('ul').toggle();
 });

 $(".dropdown dd ul li a").click(function() {
   var text = $(this).text();

   $(this).closest('dd').siblings('dt').find('span').text(text);

   $(this).closest('ul').hide();
 });

});​

Use this and tranverse the DOM to hit the appropriate list that you are trying to show. I refactored your JavaScript to do so.

$(function() {

 $(".dropdown dt a").click(function() {
   $(this).closest('dt').siblings('dd').find('ul').toggle();
 });

 $(".dropdown dd ul li a").click(function() {
   var text = $(this).text();

   $(this).closest('dd').siblings('dt').find('span').text(text);

   $(this).closest('ul').hide();
 });

});​
妖妓 2024-10-02 09:38:24

演示

http://jsfiddle.net/QznH7/

css

.invisible
{
    display:none;
}​

<强>html

<dl>
        <dt><a class='showMenu' href="javascript:"><span>1</span></a></dt>
        <dd>
            <ul class="invisible">
                <li><a href="#">a</a></li>
                <li><a href="#">b</a></li>
            </ul>
        </dd>
</dl>

<dl>
        <dt><a class='showMenu' href="javascript:"><span>2</span></a></dt>
        <dd>
            <ul class="invisible">
                <li><a href="#">a</a></li>
                <li><a href="#">b</a></li>
            </ul>
        </dd>
    </dl>

javascript

jQuery(function(){
    jQuery('.showMenu').bind('click',function(e){
        jQuery(e.target).parents('dl:first').find('ul').toggleClass('invisible')
    });   
});

demo

http://jsfiddle.net/QznH7/

css

.invisible
{
    display:none;
}​

html

<dl>
        <dt><a class='showMenu' href="javascript:"><span>1</span></a></dt>
        <dd>
            <ul class="invisible">
                <li><a href="#">a</a></li>
                <li><a href="#">b</a></li>
            </ul>
        </dd>
</dl>

<dl>
        <dt><a class='showMenu' href="javascript:"><span>2</span></a></dt>
        <dd>
            <ul class="invisible">
                <li><a href="#">a</a></li>
                <li><a href="#">b</a></li>
            </ul>
        </dd>
    </dl>

javascript

jQuery(function(){
    jQuery('.showMenu').bind('click',function(e){
        jQuery(e.target).parents('dl:first').find('ul').toggleClass('invisible')
    });   
});

踏雪无痕 2024-10-02 09:38:24

您的下拉菜单具有相同的类 dl class="dropdown">

因此,当您这样做时:

$(".dropdown dt a").click(function() {
  $(".dropdown dd ul").toggle();
});

它对它们都执行此操作!

您可能想识别您点击的是哪一个。例如,您可以为下拉菜单提供一个 id

<dl id="dropdown1">

,然后更改您的 jQuery。

Your dropdown menus got the same class dl class="dropdown">

So when you do that for example :

$(".dropdown dt a").click(function() {
  $(".dropdown dd ul").toggle();
});

It does it on both of them!

You may want to recognize which one you click on. For example, you can give you dropdowns an id

<dl id="dropdown1">

and change your jQuery in consequence.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文