【问题标题】:delegate/on with hover [duplicate]委托/悬停[重复]
【发布时间】:2012-04-10 21:15:14
【问题描述】:

可能重复:
Using delegate() with hover()?

我正在尝试这段代码,但显然我做错了什么。使用此代码,hover 效果不起作用。

但是类似:$('.group>span').hover (function() { 的效果很好,但我需要委派html() 内容。

<div class="group">
    <span></span>
</div>

$('.group>span').delegate("hover", "a", function() {
    $(this).html('<a href="#new_list">Some button</a>');
}, function() {
    $(this).empty();
});​

有什么想法吗?谢谢

【问题讨论】:

  • 我更新了my answer。你用错了委托函数
  • 您不希望在&lt;a&gt; 上发生任何悬停事件,对吗?
  • 我正在做一些测试,但是是的,我会接受,谢谢

标签: jquery delegates


【解决方案1】:

您传递给delegate 的参数数量无效。你通过了 4 而它应该只需要 3。

.delegate( selector, eventType, handler(eventObject) )是函数签名。
而且你代码中参数的顺序是错误的!你交换了选择器和事件类型

这是你写的:

$('.group>span').delegate ("hover", "a", function() {

虽然应该是这样的:

$('.group>span').delegate ("a", "hover", function() {

无论如何,您都可以通过这种方式将delegate 用于hover

$('.group>span').delegate("a", "mouseenter", function() {
    $(this).html('<a href="#new_list">Some button</a>');
});

$('.group>span').delegate("a", "mouseleave", function() {
    $(this).empty();
}​);

LIVE DEMO
您可以在这个问题中看到另一种方法:
Using delegate() with hover()?

【讨论】:

  • jsfiddle.net/NSYWG -> 有什么问题吗?
  • @loops。是的......更新了你的小提琴。 here
  • @Downvoter 请解释你的行为!!!
【解决方案2】:

hover 只是mouseentermouseleave 的方便包装。我认为您将不得不分别处理每个。

【讨论】:

  • 虽然你是对的。他的代码中还有更多错误... :)
猜你喜欢
  • 2013-06-10
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-26
  • 2017-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多