子元素触发的鼠标悬停事件 - 如何停止?

2024-02-01

我想使用 scriptaculous 中的 Effect.Move 来构建这个界面(当然,使用 Prototype)。

当顶div鼠标悬停时触发span标签是向左移动 50 像素 - 并在鼠标移开时重置而不移动到原始位置。问题是,任何时候div元素是从子元素输入的,我想要移动的元素会额外移动 50 个像素。我尝试过使用relatedTarget and toElement试图阻止该事件的传播,但无济于事。这是代码,目前还不完整:

e.observe('mouseover', function(evt) {
   var block = e.down('span');

   if(evt.target == block && !evt.relatedTarget.descendantOf(block)){
    new Effect.Move(block, { x: -50, duration: 0.4, 

    });
   } else {

   }

  });

HTML 示例:

<div class='trigger'>
  <span class='to-be-moved'>...</span>
  <p>Child Element</p>
  <h2>Another Child Element</h2>
  <a>Link</a>
</div>

我完全迷失在这里 - 有什么建议吗?


你尝试过使用吗“鼠标进入”和“鼠标离开” http://demos.mootools.net/Mouseenter而不是“鼠标悬停”和“鼠标移出”?即使有子元素,它们也只会触发一次,并且原型从1.6.1开始支持 https://github.com/sstephenson/prototype/commit/9d7a981e4c434ee7ca5a1219ab5a150552c411d1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

子元素触发的鼠标悬停事件 - 如何停止? 的相关文章

随机推荐