javascript - 使 JQuery 下拉代码可重用

标签 javascript jquery html drop-down-menu

我在 Codrops 上找到了一个下拉列表,我想在我的应用程序中使用它 - 这是本页上的示例 #5:https://tympanus.net/codrops/2012/10/04/custom-drop-down-list-styling/

我已经用 CSS 和 JS 将它弹出到我的页面上,它可以工作并且看起来不错等,但是当我开始添加另一个并意识到它不会工作,因为代码被设计为只适用于一个下拉菜单,要使其适用于多个下拉菜单,我必须复制 JS 代码,但我不喜欢这样做,而且从标准 Angular 来看,这不是正确的做法。

我只是不确定如何创建一些可以传入下拉列表并为每个下拉列表设置点击事件的内容,因为在生产中大多数这些框都会动态地出现在页面上。

我创建了一个下拉列表和我在这里使用的代码:https://jsfiddle.net/WebDevelopWolf/jou30bvg/

代码的 JS 部分是(这也在 fiddle 中):

function DropDown(el) {
    this.dd = el;
    this.initEvents();
}
DropDown.prototype = {
    initEvents : function() {
        var obj = this;

        obj.dd.on('click', function(event){
            $(this).toggleClass('active');
            event.stopPropagation();
        }); 
    }
}

$(function() {
    var dd = new DropDown( $('#dd') );
    $(document).click(function() {
        // all dropdowns
        $('.wrapper-dropdown-5').removeClass('active');
    });
});

最佳答案

我所做的只是从您的代码中删除一些内容,然后它就可以重用了。

function DropDown(el) {
    el.on('click', function(event){
      $(this).toggleClass('active');
      event.stopPropagation();
    }); 
}


new DropDown( $('#dd') );

这里是一个 fiddle https://jsfiddle.net/jou30bvg/3/

关于javascript - 使 JQuery 下拉代码可重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44025284/

相关文章:

javascript - 覆盖 toString 函数

javascript - 使用 Promises 响应来自 Node.js 的请求

javascript - 如何使用 JSON.parse() 显示正确的值?

html - Bootstrap 下拉 css 与其他菜单项冲突

php - 由于 htaccess 文件而禁止传递变量

html - 为什么这个 margin 抵消不能正常工作?

javascript - 解密一些神秘的遗留 JavaScript

javascript - 实时验证更改输出位置

javascript - 为什么 XPath 从 jQuery 中删除?

javascript - Jquery - 在 keyup 上更改数据属性值