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