1

我想取消 onBlur 事件以保持 dijit.TooltipDialog 处于打开状态,即使在外部单击时也是如此。

所以我的策略是继承 dijit.TooltipDialog 并以某种方式处理该事件。但是,无论我做什么,事件都会传播。取消它的唯一可怕方法是强制某种空指针并忽略它。

dojo.provide("package.AnotherTooltipDialog");
dojo.require("dijit.TooltipDialog");

dojo.declare("package.AnotherTooltipDialog", [dijit.TooltipDialog],
{
    startup: function () {
        this.inherited(arguments);
        //this._onBlur = null;
        //this.onBlur = null;
    },
    onBlur: function () {
        //dojo.stopEvent(e); // don't have any arguments
        //this.inherited(arguments);
        //return false;
        //return -1;
        //return null;

    }
//  ,
//    _onBlur: function () {
//        dojo.stopEvent(e); // don't have any arguments
//        this.inherited(arguments);
//        return false;
//        return -1;
//        return null;
//    }
});

有任何想法吗?

4

1 回答 1

1

这里的问题是 TooltipDialog 作为下拉菜单处理。

您不必修改 tooltipDialog,而是修改 DropDownButton。

我不确定在您的应用程序中工具提示是否从 DropDownButton 出现,但如果是这种情况,请覆盖其 _onBlur,如下所示:

return declare("package.AnotherDropDownButton", [DropDownButton], {
     _onBlur        : function() { 
         //Leave this empty
      }
}
于 2013-10-09T08:55:16.930 回答