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;
// });
这么写好像不行 有没有其他的写法可以实现么? 展开
// $(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上 效率不是很好...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询