无法使用 FireFox 中的事件对象访问 relatedTarget
Unable to access relatedTarget using the event object in FireFox
我正在为 YAML 使用 CodeMirror
编辑器。
我有以下代码。
$('#' + element.id).ready(function() {
editor = CodeMirror.fromTextArea(document.getElementById(element.id), Options);
editor.setValue(self.test());
editor.on('blur', function(event) {
var clickedElement = event.relatedTarget;
var isAddDialogButtonClicked = false;
if (clickedElement !== null) {
isAddDialogButtonClicked = clickedElement && clickedElement.parentElement &&
clickedElement.parentElement.id === bindingContextData.addDialogButtonId();
}
});
});
event.relatedTarget
在 FireFox 中不工作。它在 Chrome 中运行良好。
知道如何解决这个问题吗?
您可以使用 event.originalEvent
从 jQuerys 事件访问本机 DOM,也许您可以在那里找到 relatedTarget?此外,根据 MDN,event.relatedTarget
仅适用于某些事件。从 MDN 2018-12-07 复制:
The MouseEvent.relatedTarget read-only property is the secondary target for the mouse event, if there is one.
Event name target relatedTarget
focusin The EventTarget receiving focus The EventTarget losing focus
focusout The EventTarget losing focus The EventTarget receiving focus
mouseenter The EventTarget the pointing device entered to The EventTarget the pointing device exited from
mouseleave The EventTarget the pointing device exited from The EventTarget the pointing device entered to
mouseout The EventTarget the pointing device exited from The EventTarget the pointing device entered to
mouseover The EventTarget the pointing device entered to The EventTarget the pointing device exited from
dragenter The EventTarget the pointing device entered to The EventTarget the pointing device exited from
dragexit The EventTarget the pointing device exited from The EventTarget the pointing device entered to
For events with no secondary target, relatedTarget returns null.
里面没有 blur
,但我很确定 blur
只是 focusout
.
的别名
或者,直接挂钩到香草 javascript,jQuery 被高估了:
editor[0].addEventListener( 'blur', function( event ){
// whatevs
}
(editor[0]
从返回的 jQuery 对象访问本机 DOM 元素)
否则重构?
CodeMirror onBlur 事件处理程序将 'event' 作为第二个参数。
editor.on('blur', 函数(实例, 事件) {});
我正在为 YAML 使用 CodeMirror
编辑器。
我有以下代码。
$('#' + element.id).ready(function() {
editor = CodeMirror.fromTextArea(document.getElementById(element.id), Options);
editor.setValue(self.test());
editor.on('blur', function(event) {
var clickedElement = event.relatedTarget;
var isAddDialogButtonClicked = false;
if (clickedElement !== null) {
isAddDialogButtonClicked = clickedElement && clickedElement.parentElement &&
clickedElement.parentElement.id === bindingContextData.addDialogButtonId();
}
});
});
event.relatedTarget
在 FireFox 中不工作。它在 Chrome 中运行良好。
知道如何解决这个问题吗?
您可以使用 event.originalEvent
从 jQuerys 事件访问本机 DOM,也许您可以在那里找到 relatedTarget?此外,根据 MDN,event.relatedTarget
仅适用于某些事件。从 MDN 2018-12-07 复制:
The MouseEvent.relatedTarget read-only property is the secondary target for the mouse event, if there is one.
Event name target relatedTarget
focusin The EventTarget receiving focus The EventTarget losing focus
focusout The EventTarget losing focus The EventTarget receiving focus
mouseenter The EventTarget the pointing device entered to The EventTarget the pointing device exited from
mouseleave The EventTarget the pointing device exited from The EventTarget the pointing device entered to
mouseout The EventTarget the pointing device exited from The EventTarget the pointing device entered to
mouseover The EventTarget the pointing device entered to The EventTarget the pointing device exited from
dragenter The EventTarget the pointing device entered to The EventTarget the pointing device exited from
dragexit The EventTarget the pointing device exited from The EventTarget the pointing device entered to
For events with no secondary target, relatedTarget returns null.
里面没有 blur
,但我很确定 blur
只是 focusout
.
或者,直接挂钩到香草 javascript,jQuery 被高估了:
editor[0].addEventListener( 'blur', function( event ){
// whatevs
}
(editor[0]
从返回的 jQuery 对象访问本机 DOM 元素)
否则重构?
CodeMirror onBlur 事件处理程序将 'event' 作为第二个参数。 editor.on('blur', 函数(实例, 事件) {});