javascript - oop:点击事件

标签 javascript jquery oop jquery-events

是否可以在对象内定义点击事件 (oop)? 我对此很陌生。 我一直在尝试以下操作:(我简化了代码(没有 div 等的 CSS))

function menu_item(menu_name){
    this.menu_name=menu_name;

    this.create = function(){
        $('body').html("<div id=" + menu_name + " />");
    };  
    
    $('#' + menu_name).on('click',function(){
        alert (menu_name);
    });
}

menu_item("test");
menu_item.create();

现在,当我点击具有给定 menu_name id 的 div 时, 我想提醒这个名字(作为测试)但这不起作用...... 这甚至可能吗?

最佳答案

是的,这是可能的。但是,我在您的代码中看不到任何 OOP 构造函数 - 您将其作为函数调用。

您的问题似乎是当您尝试添加事件监听器时没有具有该 ID 的元素,或者调用您的 create 方法会覆盖它。

使用这个:

function MenuItem(name){
    this.menu_name = name;

    this.create = function() {
        var el = $("<div id=" + menu_name + " />");
        el.on('click',function(){
            alert (menu_name);
        });
        $('body').append(el);
    };
}

var menu = new MenuItem("test");
menu.create();

关于javascript - oop:点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12672378/

相关文章:

javascript - 用多个其他字符串替换多个字符串

javascript - Ajax 操作真的应该有单独的 URL 吗?

jquery - 使用溢出调整 div 的高度

javascript - 获取 Kendo 电子表格中特定列的值

java - 为什么抽象类可以这样实例化?

Javascript - 如何强制数组具有特定数量的元素

javascript - 使用 JavaScript 从 JSON 中的对象中提取对象

javascript - jQuery .serialize() 用于发布?

javascript - JavaScript 中的三维对象

java - 如何通过另一个构造函数添加到数组列表?