骨干事件

发布于 2024-12-10 18:18:32 字数 498 浏览 0 评论 0原文

您好,我想知道如何使用

当前的

events: {
  "hover .info"   : "hover"
},

hover:(e) =>
  $(e.currentTarget).css("background-color", "#333")

主干和 js 处理删除悬停状态,我想知道如何处理将鼠标从带有 class .info 的元素移开的事件

如果我在里面执行标准咖啡脚本来执行此操作在悬停:事件处理程序中,需要悬停 2 次才能工作。

我基本上想模仿

$(".info").hover(
    function() {
       $(this).css("background-color", "#333")
    },
    function() {
       $(this).css("background-color", "#F3F")
    },
});

谢谢

Hi I was wondering how I handle the remove hover state using backbone and js

currently I have

events: {
  "hover .info"   : "hover"
},

hover:(e) =>
  $(e.currentTarget).css("background-color", "#333")

I was wondering how I would handle the event where i move my mouse away from the element with class .info

If i do standard coffee script inside to do this inside the hover: event handler it requires 2 hovers for it to work.

I basically want to imitate

$(".info").hover(
    function() {
       $(this).css("background-color", "#333")
    },
    function() {
       $(this).css("background-color", "#F3F")
    },
});

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

故事和酒 2024-12-17 18:18:32

来自 jQuery 文档

调用 $(selector).hover(handlerIn, handlerOut) 是以下简写:

$(selector).mouseenter(handlerIn).mouseleave(handlerOut);

所以我认为最好用 Backbone 处理这个问题的方法只是设置两个事件(抱歉,我不相信 CoffeeScript):

events: {
  "mouseenter .info"   : "hoverOn",
  "mouseleave .info"   : "hoverOff"
},

hoverOn: function(e) { ... },
hoverOff: function(e) { ... }

或者,您可以使用 单参数语法,它接受一个函数并在输入和输出上调用它 - 这与 .toggle( 配合使用效果很好)toggleClass()

From the jQuery docs:

Calling $(selector).hover(handlerIn, handlerOut) is shorthand for:

$(selector).mouseenter(handlerIn).mouseleave(handlerOut);

So I think the best way to handle this with Backbone is just to set two events (sorry, I don't believe in CoffeeScript):

events: {
  "mouseenter .info"   : "hoverOn",
  "mouseleave .info"   : "hoverOff"
},

hoverOn: function(e) { ... },
hoverOff: function(e) { ... }

Alternatively, you could use the single argument syntax, which takes one function and calls it on both in and out - this works well with .toggle() and toggleClass().

清眉祭 2024-12-17 18:18:32

有一个版本的 hover() 需要一个回调函数

描述:将单个处理程序绑定到匹配的元素,当鼠标指针进入或离开元素时执行。

这是 Backbone 将使用的 hover 版本。因此,您可以使用 toggleClass 和几个 CSS 类来处理此问题,而不是直接使用搞乱css:默认

hover:(e) =>
  $(e.currentTarget).toggleClass('dark-gray')

情况下,将在元素上设置默认的#F3F颜色,并且您将:

.dark-gray {
  background-color: #333
}

在样式表中。如果由于某种原因无法使用 toggleClass,则必须分别绑定到 mouseentermouseleave

There is a version of hover() that takes one callback function:

Description: Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements.

This is the version of hover that will get used by Backbone. So you could handle this with toggleClass and a couple CSS classes instead of directly messing around with the css:

hover:(e) =>
  $(e.currentTarget).toggleClass('dark-gray')

The default #F3F color would be set on the element by default and you'd have:

.dark-gray {
  background-color: #333
}

in your stylesheets. If you cannot for some reason use toggleClass, you'd have to bind to mouseenter and mouseleave individually.

落叶缤纷 2024-12-17 18:18:32

然而,在这个精确的示例中,您确实应该使用 css :hover 伪类 而不是 jquery 。

In this precise example, however, you should really use css :hover pseudo class instead of jquery.

满身野味 2024-12-17 18:18:32

如果它不是操作链接,那么您可以遵循 css : pointer-events:none

If it is not an action link then you can following css : pointer-events:none

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文