我不确定这是否是一个好问题,但我很想听听对此的一些意见。
想象有两种事件:
A: a mouse click
B: mouse is currently inside a box
另外,假设有 2 种事件处理函数:
f: console.log("mouse is clicked")
g: console.log("mouse is clicked inside the box")
现在我想要代码做的是,当鼠标在框内的任何地方单击时,显示消息“鼠标被单击”。但是,当鼠标在框内单击时,会显示消息“鼠标在框内单击”。
我目前的实现方式如下:
if (A) then {f()}
if (A and B) then {g()}
简而言之,我将 f 注册为 A 的侦听器,并创建了一个在 A 和 B 都保持时触发的新事件,并将 g 注册为该事件的侦听器。
当然,当鼠标在框内单击时,我收到两条消息:“鼠标在框内单击”“鼠标被单击”
而不是我正在寻找的单个“鼠标在框内单击”。
是否有任何正式的方式来定义正在发生的事情,以及解决它的最佳方式是什么?简而言之,我希望事件处理程序 g 优先于处理程序 f,这样当 g 被调用时,它会抑制 f 的调用。