日期:2014-05-16  浏览次数:20357 次

jquery中$(document).on的一些疑惑
jquery中用on来绑定事件,经常的写法有
$(document).on('click','.classname',function(){});
$('.classname').on('click',function(){});

上面两种都是给类是classname的元素添加了click事件,那这两个写法有什么区别呢?在效率上哪个更好呢?

同样的,
$(document).on('click','#idname',function(){});
$('#idname').on('click',function(){});

这个是个id为idname的原始 绑定click事件,这两种写法又有什么不同呢?

我的理解是$(document).on是把事件委托到了document上,$('#idname').on是把事件委托到了元素上面,那应该是后一种比较好,这种理解是对的吗?

------解决方案--------------------
$(document).on是把事件委托到了document上      对的。
$('#idname').on是把事件委托到了元素上面        错的。 事件直接帮到#idname

$('.classname').on('click',function(){});       每一个有.classname的元素,绑一个click事件。
所以用$(document).on('click','.classname',function(){}); 比较好,