1

这听起来很简单,并且有一个涉及更改 CSS 类的解决方案,但我想知道是否有一个优雅的即时解决方案来解决以下问题。

这是一个类似的问题,但它为我的场景创建了“太多递归”。

所以我有 2 个按钮,它们都转到下一个选项卡;一个在内容的顶部,一个在下面。当我将鼠标悬停在其中任何一个上时,我希望它们都显示悬停状态。它们具有相同的 html 代码;

<a href="#" class="button step-next" onclick="showStep(3); return false;">Next &raquo;</a>

并在另一篇文章之后,我尝试了解决方案;

$('a.step-next').on('mousenter mouseleave', function(e) {
    $('a.step-next').not(this).trigger(e.type);
});

但是我最初使用 not() 的逻辑是错误的;它只会在两个元素之间来回触发事件。

显然,我可以更改 CSS 以添加一个新类并在悬停/非悬停时将其删除,这是我要走的路线。但是有一个仅触发的解决方案吗?

4

2 回答 2

0

不确定您想要实现什么(html required),但这可能是您正在寻找的解决方案:

$('a.step-next').on('mousenter mouseleave', function(e) {
  $(this).siblings('a.step-next').trigger(e.type);
});
于 2013-03-11T11:03:25.210 回答
0

如果我理解正确,您不希望代码生成的事件重新触发代码..

如果是这样,您可以使用extraParametersof.trigger()方法

$('a.step-next').on('mousenter mouseleave', function(e, fromCode) {
    if (fromCode === undefined){
        $('a.step-next').not(this).trigger(e.type, true);
    }
});
于 2013-03-11T11:11:51.367 回答