在对象创建时添加事件处理程序不起作用? JavaScript的

时间:2012-04-18 07:25:54

标签: jquery javascript-events javascript-objects

我有以下内容:

MycheckModal.__construct = function(element){
this.blackout = $("<div class='modal-backdrop'></div>")
    .attr("style", 'left:0px;top:0px;position:absolute;background:black')
    .css("opacity", "0.5")
    .css("height", $(document).height() + 'px')
    .css("width", $(document).width() + 'px')
    .css("z-index", "5000");

this.blackout.live("click", function(){
    MycheckModal.__destruct();
});

}

MycheckModal.__destruct = function(){
    this.element = null;
    this.url = null;
    this.blackout.fadeOut(150, function(){ 
        MycheckModal.blackout.remove();
        MycheckModal.blackout = null;
        } );
    this.modal.fadeOut(150, function(){ 
        MycheckModal.modal.remove();
        MycheckModal.modal = null;
        } );    
}

这是一个更大的代码,但你得到了jist。 无论如何 - 事件处理程序没有注册,但是 - 当我明确地注册它 - 在构造函数之外 - 它工作正常。

任何想法我需要做什么?

2 个答案:

答案 0 :(得分:1)

我不确定原因,但尝试使用“点击”而不是“直播”。

this.blackout.click(function() {
    MycheckModal.__destruct();
});

答案 1 :(得分:1)

this.blackout.on("click", function(){
    MycheckModal.__destruct();
});