javascript - jQuery `on` 方法未绑定(bind)事件

标签 javascript jquery events primefaces

我在绑定(bind)(或触发)click 事件时遇到问题。

var Edocs = function() {
return {
    Utils: function() {
        var initHorizontalResizer = function() {
            console.log('Edocs.Utils.initHorizontalResizer()');
            $('.resize-main-content').on('click', function() {
                console.log('abc');
                if ($('[id="menu"]').hasClass('slidedOut'))
                {
                    $('[id="menu"]').removeClass('slidedOut');
                    $('[id="content"]').removeClass('resized');
                } else {
                    $('[id="menu"]').addClass('slidedOut');
                    $('[id="content"]').addClass('resized');
                }
            });
        };
        return {
            init: function() {
                console.log('Edocs.Utils.init()');
                initHorizontalResizer();
            }()
        };
    }()
};
}();

当我打开 javascript 控制台时,我看到以下值:Edocs.Utils.init()Edocs.Utils.initHorizo​​ntalResizer(),但是当我单击 .resize-main-content 元素 - 没有任何反应。所以我尝试将此绑定(bind)直接粘贴到控制台并且... - 它正在工作!为什么?

我正在使用 Primefaces 5.0 (jQuery 1.10.x)

最佳答案

假设.resize-main-content元素动态附加到页面,则需要使用on的委托(delegate)版本:

$(document).on('click', '.resize-main-content', function() {
    // rest of your code...
});

请注意,应更改 document 以选择在 DOM 加载时可用的 .resize-main-content 最近的父元素。我只是在这里使用 document 作为示例。

关于javascript - jQuery `on` 方法未绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24953504/

相关文章:

javascript - 获取javascript函数参数

javascript - 我的 JS/jQuery 创建 div 有困难

javascript - Vue 组件 : Dropdown menu open inside div

javascript - Jquery - 命名空间和闭包

jquery - 使用 jQuery.event 检测被单击的链接

javascript - 为什么 AngularJS 中的 $event.preventDefault() 不阻止出现上下文菜单?

javascript - 如何解析 json 对象属性以将其绑定(bind)到控件

Jquery函数中的Javascript变量可以更好地使用吗?

javascript - 在 jquery 对话框标题栏中设置图标样式

java - 在底层组件上触发鼠标事件