在文本框的焦点上,我使用jQuery显示模式对话框。关闭对话框后,焦点将返回到文本框,然后再次显示对话框。有可能阻止这种情况发生吗?
在我试过的对话框的附近功能中......
event.stopPropagation();
event.preventDefault();
event.stopImmediatePropagation();
event.returnValue = false;
...但这些不起作用,因为它们会停止关闭对话框的事件,而不是作为新事件的焦点事件。
这似乎是IE唯一的问题 - 它不会发生在chrome和edge中,因为它们不会将焦点返回到原始输入控件。有什么想法吗?
$ctl.focus(function (e) {
var $popup = jQuery("<div><input type=\"text\"></input></div>");
$popup.dialog({
title: 'test',
closeOnEscape: true,
position: {
of: $ctl,
my: "left top",
at: "left bottom"
},
open: function (event, ui) {
//Close the dialog when clicking outside (on the modal overlay) - requires the dialog to be in modal format
jQuery(".ui-widget-overlay").click(function () {
$popup.dialog("close");
event.stopPropagation();
event.preventDefault();
event.stopImmediatePropagation();
event.returnValue = false;
});
},
close: function (event, ui) {
jQuery(this).dialog("destroy").remove();
},
minHeight: 10,
minWidth: 10,
modal:true
});
});
答案 0 :(得分:0)
我目前无法立即访问IE,但我认为删除焦点应该有效。
$(event.target).blur();