jquery delegate可以一下委托多个

//比如//$(document).delegate('.xxx','mouseentermouseleaveclick',function(){//$(this).ad... // 比如
// $(document).delegate('.xxx', 'mouseenter mouseleave click', function(){
// $(this).addClass('hover');
// },function(){
// $(this).removeClass('hover');
// },fucntion(){
// $(this).xxxxxxxxxxx;
// });

这么写好像不行 有没有其他的写法可以实现么?
展开
 我来答
匿名用户
推荐于2017-11-26
展开全部

可以参考下jq的帮助文档

您可以采用链式的写法达到一样的效果啊:

$("#xx").delegate('.xxx', 'mouseenter', function(){
//.....
}).delegate('.xxx', 'mouseout', function(){
//.....
})

使用bind也可以绑定多个事件的:
$(document).bind('mouseover mouseout mousemove', function(event) {
......
});

JQ帮助文档里是这样写的

$(selector).delegate(childSelector,event,data,function)
event   规定附加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。

既然可以绑定多个事件,如果没效果那就看看你绑定的事件是否重复了,比如 mouseenter 和click 就已经重复了。 还有一个重点的就是你要指定一个确定的div  id来绑定事件而不是document. 这个方法本身就是为了不让事件冒泡到document上 增加执行效率

追问
是的 现在可以想到的是用链式 但若有多个ajax出来的元素 需要加mouseenter leave click等事件的话 谢联是会很乱 而文档里所谓的给一个元素多个事件的意思是都执行同一个函数 只能在函数里用event来判断是哪个事件.....但似乎并不能做到像live那样的写法......说真的 我看着live的那个写法很舒服 只不过只能寄托在document上 效率不是很好...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式