Dart 在飞镖中沸腾的事件

Dart 在飞镖中沸腾的事件,dart,event-bubbling,dart-html,Dart,Event Bubbling,Dart Html,我有一个充满图片的图层(子图层),当鼠标在图层上时,我想知道鼠标相对于父图层和其中一张图片的坐标。 我没有这样做。为了说明这个问题,我举了一个简单的例子: 1层,带有一个子图片,鼠标悬停事件触发 考虑以下几点: 泡沫 和省道脚本: 导入'dart:html'; void main(){ 查询选择器(“#层”).onMouseMove.listen((e)=>print(${e.target}:${e.offset}”); } 当我将鼠标移到图层(不是图像!)上时,我会收到消息:div:Po

我有一个充满图片的图层(子图层),当鼠标在图层上时,我想知道鼠标相对于父图层和其中一张图片的坐标。 我没有这样做。为了说明这个问题,我举了一个简单的例子: 1层,带有一个子图片,鼠标悬停事件触发

考虑以下几点:


泡沫
和省道脚本:

导入'dart:html';
void main(){
查询选择器(“#层”).onMouseMove.listen((e)=>print(${e.target}:${e.offset}”);
}
当我将鼠标移到图层(不是图像!)上时,我会收到消息:
div:Point(x,y)
,其中点(
e.offset
)以图层的坐标表示;当我将鼠标移到图像上时,我会收到消息:
img:Point(x,y)
,图像坐标中给出了
e.offset
。Bou未为image.onMouseMove设置侦听器

因此,问题是:

  • 发生了什么事?为什么会触发image.onMouseOver事件
  • 让我们假设上一个问题的答案是,因为图像是层的后代。但随着事件的发展,会发生什么呢?为什么event image.onMouseOver不在DOM中冒泡到更高的层并触发layer.onMouseOver事件

  • 当您悬停
    时触发事件是因为
    的一部分,当您悬停
    时触发事件是因为
    确定的一部分。这回答了我的第一个问题。您是对的,这并不是完全的事件冒泡,因为尽管我有两个嵌套元素,但其中只有一个(
    div
    )注册了事件处理程序。一、 为了测试,添加了以下行
    querySelector(#image”).onMouseMove.listen((e)=>print(${e.target}:${e.offset}”)现在我希望当我悬停在图像上时,我应该从图像和层事件处理程序中获得消息,但是输出与上面描述的完全相同。Ok。这回答了我的第一个问题。您是对的,这并不是完全的事件冒泡,因为尽管我有两个嵌套元素,但其中只有一个(
    div
    )注册了事件处理程序。一、 为了测试,添加了以下行
    querySelector(#image”).onMouseMove.listen((e)=>print(${e.target}:${e.offset}”)现在我希望当我悬停在图像上时,我应该从图像和层事件处理程序中获得消息,但是输出与上面描述的完全相同。Ok。这回答了我的第一个问题。您是对的,这并不是完全的事件冒泡,因为尽管我有两个嵌套元素,但其中只有一个(
    div
    )注册了事件处理程序。一、 为了测试,添加了以下行
    querySelector(#image”).onMouseMove.listen((e)=>print(${e.target}:${e.offset}”)现在我希望当我悬停在图像上时,我应该从图像和层事件处理程序中获得消息,但是输出与上面描述的完全相同。