jquery ui widget - 如何调用overriden事件处理程序

时间:2013-10-18 10:42:24

标签: javascript jquery jquery-ui events widget

我正在构建自定义jquery ui小部件,我添加了自定义事件 当我实例化小部件时,我可以覆盖原始事件处理程序 如何从新的事件处理程序中调用原始事件处理程序?
例如:

$.widget("myns.mywidget", {
    options: {
        myoption: null,
        myevent: function(event, ui){
            alert("original event handler");
        }
    },
    myMethod: function(){
        [...]
        this._trigger("myevent", {}, {});
    }
});

当我这样做时:

$("#target").mywidget();
$("#target").mywidget("myMethod");

我看到消息“原始事件处理程序” 相反,如果我这样做:

 $("#target").mywidget({
     myevent: function(event, ui){
         alert("overriden event handler");
     }
 });
 $("#target").mywidget("myMethod");

我看到消息“覆盖事件处理程序”。
我如何从被覆盖的执行原始事件处理程序?
像:

 $("#target").mywidget({
     myevent: function(event, ui){
         alert("overriden event handler");
         original.myevent();
     }
 });
 $("#target").mywidget("myMethod");

用于查看消息“覆盖事件处理程序”和“原始事件处理程序”?
非常感谢,对不起我的英语

1 个答案:

答案 0 :(得分:0)

我找到了这个解决方案:

$("#target").mywidget({
    myevent: function(event, ui){
        alert("overriden event handler");
        $.myns.mywidget.prototype.options.myevent.call(this, event, ui);
    }
});
$("#target").mywidget("myMethod");

如果有人有更好的解决方案,请告诉我 感谢