我想知道这是否可行,我能够用AS3做到这一点。是否可以绑定仅侦听鼠标事件的div上的侦听器。所以假设我有一个叫做“狮子”的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);
}
现在如果我想将这个功能分配给“狮子”,我不确定这怎么可能?我做了很多搜索,我最接近的是:
我很感激您的意见。 谢谢。
答案 0 :(得分: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
方法的目的是什么?为什么不直接提醒类型?
答案 1 :(得分:0)
您可以制作自己的自定义事件,并将它们绑定到元素。您甚至可以将相同的功能绑定到多个事件。 (P.S.在jQuery 1.7+中,使用on
代替bind
)
$("#mouse").on("lion click", function(e){
alert(e.type);
});
现在#mouse
附加了lion
个事件。显然,浏览器无法触发此事件,但您可以。
$("#mouse").trigger('lion');
这将触发您的自定义lion
事件。
DEMO:http://jsfiddle.net/bav4K/2/
注意:$.fn
用于将函数附加到jQuery对象。如果你的情况没有多大意义(你不会打电话给$('#mouse').chkType()
),我建议改用$.chkType
。