【问题标题】:cannot use .bind() to bind hover不能使用 .bind() 绑定悬停
【发布时间】:2010-11-06 00:27:16
【问题描述】:

我正在尝试使用 jQuery。当我尝试时,我发现我不能将悬停事件与 .bind 一起使用。而且我不知道出了什么问题。

$(document).ready(function(){
 $('.some-class').bind({
  hover: function(e) {
  // Hover event handler
   alert("hover");
  },
  click: function(e) {
  // Click event handler
   alert("click");
  },
  blur: function(e) {
  // Blur event handler
  }
 });
});

令人惊讶的是(至少对我而言)悬停不起作用。其他的“点击”和“模糊”工作正常。

以下工作也没有任何问题。

$(".some-class").hover(function(){
     // stuff
})

也许我可以使用上面的代码。但不知道为什么是一个很大的麻烦。那么有什么想法吗?

谢谢!

【问题讨论】:

    标签: jquery


    【解决方案1】:

    当与这样的对象绑定时,您需要直接使用mouseentermouseleave 事件(.hover() 使用):

    $(document).ready(function(){
     $('.some-class').bind({
      mouseenter: function(e) {
      // Hover event handler
       alert("hover");
      },
      mouseleave: function(e) {
      // Hover event handler
       alert("hover");
      },
      click: function(e) {
      // Click event handler
       alert("click");
      },
      blur: function(e) {
      // Blur event handler
      }
     });
    });
    

    .hover()is defined specially here 在 jQuery 事件代码中......它根本不像在像 .bind() 这样的地方的其他事件那样受支持,因为它不是一个事件,它只是一个帮助你绑定 @987654331 的函数@ 和 mouseleave 事件。

    【讨论】:

      【解决方案2】:

      没有太多原因,但它根本不在规范中。检查文档 - 可绑定事件中未列出悬停。

      http://api.jquery.com/bind/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多