Javascript 单击jquery模块中的动态元素

Javascript 单击jquery模块中的动态元素,javascript,jquery,Javascript,Jquery,我在jquery中为我的子菜单创建了一个短模块。我添加了click事件,即使菜单是动态创建的,它也应该工作,但事实并非如此。我已经尝试将单击直接绑定到子菜单,它正在工作。有人知道为什么这行代码不起作用吗 $(document).on('click', class_btn_submenu, toggle); 但是这个有效吗 $(class_btn_submenu).on('click', toggle); 完整模块: var Submenu = (function() { var cl

我在jquery中为我的子菜单创建了一个短模块。我添加了click事件,即使菜单是动态创建的,它也应该工作,但事实并非如此。我已经尝试将单击直接绑定到子菜单,它正在工作。有人知道为什么这行代码不起作用吗

$(document).on('click', class_btn_submenu, toggle);
但是这个有效吗

$(class_btn_submenu).on('click', toggle);
完整模块:

var Submenu = (function() {
    var class_active = 'active';
    var class_btn_submenu = '#account-sil';
    var holder_menu = $('#user-submenu');

    var open = function() {
        holder_menu.addClass(class_active);
    };

    var close = function() {
        holder_menu.removeClass(class_active);
    };

    var toggle = function(e) {
        e.preventDefault();
        if(holder_menu.hasClass(class_active)) {
            close();
        } else {
            open();
        }
    };

    $(document).on('click', class_btn_submenu, toggle);
    $(class_btn_submenu).on('click', toggle);

    return this;
})();

PS:我没有这两个事件,只是显示我正在测试它们的位置。

您正在动态添加菜单,但使用的是
id
?(
#帐户sil
)您的所有子菜单是否都具有相同的ID?你试过一个类吗?请你给我们看一些你的HTML,这是打算运行的?您还提到,您没有将事件放在您放置它们的位置,我想说,调用
on()
事件将它们连接起来的位置对于确保此代码正常工作是至关重要的。@freedomn-m这只是一个显示或隐藏的菜单。@Luke事件在我放置它们的位置,但只有一件事,不是两件事。我想让它与文档一起工作。单击,它可以与动态菜单或静态菜单一起工作,这两种情况都可以。我正在对静态菜单进行测试,它已经在html中,没有动态添加,并且不工作。