在工具提示外单击时阻止剑道工具提示隐藏/关闭?

时间:2015-01-19 07:33:38

标签: javascript jquery kendo-ui kendo-tooltip

我知道每当我们点击工具提示之外时,有人会要求剑道阻止关闭/隐藏剑道工具提示。他们建议here,但似乎尚未实施。

到目前为止,当我们点击外部剑道工具提示时,我找不到关闭/隐藏的方法。我只发现当我们点击kendo工具提示上的关闭或取消按钮时触发事件。但有没有任何方式/ hackish方式来实现这个使用javascript / jquery / anything?

2 个答案:

答案 0 :(得分:1)

就像您在链接中看到的那样,当您执行以下操作时,您包含了剑道工具提示(autoHide: false属性)隐藏:

  • 在工具提示外单击
  • 滚动页面
  • 点击Esc

在Telerik不实现防止它的功能之前,唯一的方法是使用jquery event.stopImmediatePropagation()。例如,当你在外面点击时,你可以写下来自hide的块tootlip:

$("#target").kendoTooltip({
    autoHide: false
});
$('html').on('mousedown', function(e){
    e.stopImmediatePropagation();
});

工作演示:http://dojo.telerik.com/ugUCI

不幸的是,它会阻止任何 html onmousedown事件,例如DropDownLists / ComboBoxes隐藏等。

答案 1 :(得分:0)

您可以覆盖kendo UI弹出类的close函数以防止执行。我的解决方案是在隐藏'中添加自定义异常。处理程序并防止在捕获此自定义异常时发生关闭。

kendo.ui.Popup.fn.close = function (close) {
    return function (skipeffects) {
        try {
            close.call(this, skipeffects);
        } catch (err) {
            // suppress error if its the right type
            if (!(err instanceof PreventTooltipHideException)) {
                throw err;
            }
        }
    }
}(kendo.ui.Popup.fn.close);


var tooltip = $('#' + areaId).kendoTooltip({
    content: "Hello World!",
    hide: function (e) {
         throw new PreventTooltipHideException();
    },
    autoHide: false
});