我需要在页面加载时填充多个.click()函数,基于mysql数据库中存储的图像记录数量。
到目前为止,我有一个页面,将很好地切换之间的照片与图像按钮的<ul>
但我必须手写处理它的jquery。
有没有一种方法可以根据数据库中的记录量用正确数量的.click()函数填充.js文件?
发布于 2012-03-27 06:12:49
除了Alex的回答之外,如果您想设置尚不存在或尚未添加到页面中的元素的单击事件,您可以这样做:
$(body).on('click','a.record',function(){
//any existing or future a element with class record will have this click function
});发布于 2012-03-27 06:15:31
您应该使用event delegation并将单个事件处理程序附加到某个容器,而不是向每个元素添加单独的onclick处理程序。所述事件处理将捕获所有的onclick事件,因为气泡通过DOM向上。
发布于 2012-03-27 06:10:44
您不需要为每个唯一的元素编写click()。
相反,您可以使用选择器选择一组元素,例如$('a.record'),然后将click()链接到该元素...
$('a.record').click(function() {
// Any `a` element with a class of `record` was clicked.
});这样做的缺点是您添加了一堆事件侦听器,并且它不会为将来的元素触发。
正如其他人所提到的,使用on() (如果使用较新的jQuery)或delegate() (如果使用较旧的and )的事件委派是最好的,因为它只附加一个事件侦听器,并且可以处理附加事件之后添加的未来元素。
$(document).on('click', 'a.record', function() {
// Any `a` element with a class of `record` was clicked, now or in the future.
});我在这里使用了document,但是您应该使用不会更改的最近祖先,它可能就是您所描述的ul元素。
https://stackoverflow.com/questions/9880600
复制相似问题