【问题标题】:Create multiple jQuery dropdowns/selectboxes创建多个 jQuery 下拉/选择框
【发布时间】:2013-06-25 10:46:11
【问题描述】:

此目标是创建一个可与同一页面上的多个下拉菜单一起使用的脚本。下拉菜单的内容多种多样(图片、列表等),因此本主题仅关注下拉菜单的基础知识(打开/关闭/样式)。

我使用三个 div 和两个不同的样式类来构建下拉菜单(取决于下拉菜单是否打开)。

我正在研究如何一次只显示一个 div,因此如果打开一个下拉菜单并单击其他下拉菜单,则打开的第一个应该自动关闭(隐藏)。我是 jQuery 的初学者,所以非常感谢所有帮助,如果你能在代码中留下评论,我会得到它并学习一些。

这就是代码现在的样子。我修改了之前获得帮助的脚本。

http://jsfiddle.net/yup2s/1/

稍后下拉菜单还需要一个我希望可以在 jQuery 中实现的特殊功能。当关闭下拉菜单时(到目前为止我还没有真正做到),应该有两种不同的选择:

1:点击标签或div外部(页面),当下拉菜单中有多个设置时使用,因此可以在关闭前在下拉菜单中进行多次点击。 2:点击标签,在 div 内部或外部(当 div 像选择框一样工作时)。

抱歉英语不好。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    看看这个小提琴:http://jsfiddle.net/yup2s/4/

    对于“当你点击一个,另一个关闭”的部分,我只是在 if 语句中添加了这两行:

    $('.style_active').siblings('[id^=drop_]').hide();
    $('.style_active').removeClass("style_active");
    

    然后对于您的第二个请求,我在文档上添加了一个功能 click :

    $(document).click(function(){
        $('.style_active').siblings('[id^=drop_]').hide();
        $('.style_active').removeClass("style_active");
    })
    

    但是有一个新问题,因为你的下拉菜单是文档的一部分,当你点击它时,它会立即关闭。您需要停止点击下拉菜单:

    $("div").on('click', function (e) {
        e.stopPropagation();
    }
    

    【讨论】:

    • 哇,你在 5 分钟内编写的代码比我在几个小时内编写的代码效率更高。这很棒!在我从中学到一些东西之前,我肯定会弄乱这段代码。您是否也想研究一下我提到的那个小特殊功能?我不知道 jQuery 是否可行。非常感谢!你帮了很多忙。
    • jquery 一切皆有可能,你的意思是这样的:jsfiddle.net/yup2s/20?如果是,请检查我添加的最后一个函数。
    • 很高兴听到这个消息。您的意思是在最后一个函数中重命名该类(.drop)并将该类赋予“#drop_x”div?
    • 不需要,只要你的所有选项都有类drop,最后一个函数就可以工作。
    • 好吧,我想我在第一篇文章中解释得很糟糕。基本的下拉功能现在很好用,额外的功能会像这样工作:当点击任意位置(在标题、下拉菜单、外部下拉菜单)时,下拉菜单会关闭。我需要的是一些下拉菜单的额外功能(不是全部,大多数都像现在一样关闭)所以当在下拉菜单内点击时它们不会关闭(如果有很多设置等=很多点击),所以一些下拉菜单只关闭在单击标题或下拉列表之外,我想最有效的方法是向它们添加一个类。谢谢你的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2019-01-19
    • 2013-08-03
    • 1970-01-01
    • 2017-09-29
    相关资源
    最近更新 更多