0

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

  $("#mouse").bind("click", function(e)
  {
     alert(e.currentTarget.id);
  }

但是正如你所看到的,鼠标事件已经被声明为“点击”。我想做的是编写一个函数,然后将该函数绑定到“狮子”div。并且当狮子遇到这样的鼠标事件时,函数能够捕获鼠标事件类型。这是功能:

  $.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);
  }

现在,如果我想将此功能分配给“狮子”,我不确定这怎么可能?我做了很多搜索,最接近的是:

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

我会很感激你的意见。谢谢你。

4

2 回答 2

3

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

$("#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?为什么不直接提醒类型?

于 2012-04-30T21:12:45.460 回答
0

您可以制作自己的自定义事件,并将它们绑定到元素。您甚至可以将同一个函数绑定到多个事件。(PS 在 jQuery 1.7+ 中,使用on代替bind

$("#mouse").on("lion click", function(e){
    alert(e.type);
});

现在#mouse有一个lion附加到它的事件。很明显,浏览器不能触发这个事件,但是你可以。

$("#mouse").trigger('lion');​

这将触发您的自定义lion事件。

演示:http: //jsfiddle.net/bav4K/2/

注意:$.fn用于将函数附加到 jQuery 对象。在你的情况下,这没有多大意义(你不会打电话$('#mouse').chkType()),我建议$.chkType改用。

于 2012-04-30T21:12:27.020 回答