Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在工具提示外单击时防止剑道工具提示隐藏/关闭?_Javascript_Jquery_Kendo Ui_Kendo Tooltip - Fatal编程技术网

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

Javascript 在工具提示外单击时防止剑道工具提示隐藏/关闭?,javascript,jquery,kendo-ui,kendo-tooltip,Javascript,Jquery,Kendo Ui,Kendo Tooltip,我知道有人要求剑道在我们点击剑道提示外时阻止剑道提示关闭/隐藏。他们提出了这一建议,但似乎尚未付诸实施 到目前为止,我找不到当我们在剑道工具提示外单击时关闭/隐藏的方法。我只发现当我们点击剑道工具提示上的关闭或取消按钮时触发的事件。但是,有没有任何方法/黑客手段可以使用javascript/jquery/任何东西来实现这一点?就像您在链接中看到的,您包括剑道工具提示(带有autoHide:false属性),当您: 在工具提示外单击 滚动页 按Esc键 在Telerik无法实现阻止它的功能之前

我知道有人要求剑道在我们点击剑道提示外时阻止剑道提示关闭/隐藏。他们提出了这一建议,但似乎尚未付诸实施


到目前为止,我找不到当我们在剑道工具提示外单击时关闭/隐藏的方法。我只发现当我们点击剑道工具提示上的关闭或取消按钮时触发的事件。但是,有没有任何方法/黑客手段可以使用javascript/jquery/任何东西来实现这一点?

就像您在链接中看到的,您包括剑道工具提示(带有
autoHide:false
属性),当您:

  • 在工具提示外单击
  • 滚动页
  • 按Esc键
在Telerik无法实现阻止它的功能之前,唯一的方法是使用jquery
event.stopImmediatePropagation()
。例如,当您单击“外部”时,block tootlip from hide可以写入:

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


不幸的是,它会阻止任何类似于下拉列表/组合框隐藏等的移动事件。

您可以覆盖剑道UI弹出类的关闭功能以阻止执行。我的解决方案是在“隐藏”处理程序中抛出一个自定义异常,并防止在捕获该自定义异常时发生关闭

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

这就是e.stopImmediatePropagation()的问题。将会出现一系列问题。有一种方法可以防止隐藏工具提示功能。在工具提示的隐藏方法中调用show()函数。