两种格式:
$(document).on('click', ".class", ...)
和
$('.class').on('click', ...
是否有任何差异,是否优先于另一个?或者他们是一回事吗?
答案 0 :(得分:1)
当您使用第一个时,您不知道.class
是否存在。
但是在第二种情况下,你知道它有DOM元素。它只是表现得像.bind()
所以
1.动态追加元素时,使用第一种格式。
2.如果你知道元素已经存在于DOM
中,请使用第二种格式答案 1 :(得分:1)
在案例1中,只有document
被赋予了指令;它负责代表其子元素注意点击。捕获事件的工作已被委派。它被称为 event delegation 。
在案例2中,每个具有名为class
的类的元素都已单独给出指令。如果动态创建新.class
,则他们无法在您的案例中回复任何事件,例如click
。
所以基本上,当你的元素被动态添加到DOM并使用DOM中现有元素的直接点击处理程序时,使用事件委托。