oop:点击事件

时间:2012-10-01 11:27:45

标签: javascript jquery oop javascript-events

是否可以在对象(oop)中定义on click事件? 我是新手。 我一直在尝试以下方法:(我简化了代码(没有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时, 我想提醒名字(作为测试),但这不起作用...... 这有可能吗?

1 个答案:

答案 0 :(得分:2)

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

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

使用此:

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();