Javascript 是否可以将自定义函数而不是事件绑定到JQuery中的div?

Javascript 是否可以将自定义函数而不是事件绑定到JQuery中的div?,javascript,jquery,Javascript,Jquery,我想知道这是否可能,我可以用AS3做这件事。是否可以在div上绑定一个只侦听鼠标事件的侦听器。假设我有一个名为“lion”的div,通常鼠标事件是这样绑定的: $("#mouse").bind("click", function(e) { alert(e.currentTarget.id); } 但是正如您所看到的,鼠标事件已经被声明为“单击”。我想做的是编写一个函数,然后将该函数绑定到div中的“lion”。当lion遇到此类鼠标事件时,该函数就能够捕获鼠标事件类型。以

我想知道这是否可能,我可以用AS3做这件事。是否可以在div上绑定一个只侦听鼠标事件的侦听器。假设我有一个名为“lion”的div,通常鼠标事件是这样绑定的:

  $("#mouse").bind("click", function(e)
  {
     alert(e.currentTarget.id);
  }
但是正如您所看到的,鼠标事件已经被声明为“单击”。我想做的是编写一个函数,然后将该函数绑定到div中的“lion”。当lion遇到此类鼠标事件时,该函数就能够捕获鼠标事件类型。以下是函数:

  $.fn.chkType = function(e)
  {
    var evt = e.type;
    var str = "";

    switch(evt)
    {
      case "mouseover":
      str = "MOUSE OVER";
      break;

      case "mouseout":
      str = "MOUSE OUT";
      break;

      case "click":
      str = "CLICK";
      break;

      default:
      break;
   }

   alert(str);
  }
现在,如果我想把这个函数分配给“lion”,我不确定这怎么可能?我做了很多搜索,最近的一次是:

我将感谢你的意见。
谢谢。

您可以创建自己的自定义事件,并将它们绑定到元素。您甚至可以将同一个函数绑定到多个事件。(注意,在jQuery 1.7+中,使用
on
而不是
bind

现在,
#鼠标
附带了一个
lion
事件。显然,浏览器无法触发此事件,但您可以

$("#mouse").trigger('lion');​
这将触发您的自定义
lion
事件

演示:


注意:
$.fn
用于将函数附加到jQuery对象。在您的情况下,这没有多大意义(您不会调用
$(“#鼠标”).chkType()
),我建议使用
$.chkType

您可以创建自己的自定义事件,并将它们绑定到元素。您甚至可以将同一个函数绑定到多个事件。(注意,在jQuery 1.7+中,使用
on
而不是
bind

现在,
#鼠标
附带了一个
lion
事件。显然,浏览器无法触发此事件,但您可以

$("#mouse").trigger('lion');​
这将触发您的自定义
lion
事件

演示:


注意:
$.fn
用于将函数附加到jQuery对象。在您的情况下,这没有多大意义(您不会调用
$(“#鼠标”).chkType()
),我建议使用
$.chkType

我建议绑定到所有要绑定的事件

$("#mouse").bind("click mouseover mouseout", function(e) {
    //alert(e.currentTarget.id);
    //alert(e.type);
    console.log(this.id);
    console.log(e.currentTarget.id);
    console.log(e.type);
});
更新

$.chkType
方法的目的是什么?为什么不直接通知类型?

我建议绑定到所有要绑定的事件

$("#mouse").bind("click mouseover mouseout", function(e) {
    //alert(e.currentTarget.id);
    //alert(e.type);
    console.log(this.id);
    console.log(e.currentTarget.id);
    console.log(e.type);
});
更新

$.chkType
方法的目的是什么?为什么不直接通知类型?

bind
alert(str)中使用空格而不是逗号分隔事件=>
返回str?谢谢你,凯文。我意识到一定有一个事件触发器在某处。感谢您的帮助。您在
bind
alert(str)中使用空格而不是逗号分隔事件=>
返回str?谢谢你,凯文。我意识到一定有一个事件触发器在某处。感谢您的帮助。您可以将函数作为“事件处理程序”附加到DOM元素的事件(单击、鼠标悬停、鼠标悬停等)。将函数附加到元素本身没有意义。无论您是使用jQuery还是纯旧javascript(POJS),这都适用。您可以将函数作为“事件处理程序”附加到DOM元素的事件(单击、鼠标悬停、鼠标悬停等)。将函数附加到元素本身没有意义。无论您使用的是jQuery还是纯旧javascript(POJS),这都适用。我建议不要混淆jQuery命名空间或jQuery.fn命名空间,除非有充分的理由。谢谢您的帮助,Rocket。非常感谢。我建议不要混淆jQuery名称空间或jQuery.fn名称空间,除非有充分的理由。感谢您的帮助,Rocket。谢谢。