我可以遍历 for 循环以创建更多 JavaScript 吗?

Can I iterate through for loop to create more javascript?

本文关键字:JavaScript 创建 遍历 for 循环 我可以      更新时间:2023-09-26

>我需要根据 mysql 数据库中存储的图像记录数量在页面加载时填充多个.click()函数。

到目前为止,我有一个页面可以在带有<ul>图像按钮的照片之间很好地切换

但是我必须手写处理它的jQuery。

有没有办法根据数据库中的记录量,使用正确数量的.click()函数填充.js文件。

除了 Alex 的答案之外,如果要设置尚不存在或尚未添加到页面的元素的 click 事件,您可以执行以下操作:

$(body).on('click','a.record',function(){
    //any existing or future a element with class record will have this click function
});

不应向每个元素添加单独的onclick处理程序,而应使用事件委托并将单个事件处理程序附加到某个容器。所述事件句柄将捕获所有onclick事件,因为气泡通过 DOM 向上。

您无需为每个唯一元素编写click()

相反,您可以使用选择器选择一堆元素,例如$('a.record')然后将click()链接到该元素...

$('a.record').click(function() {
   // Any `a` element with a class of `record` was clicked.
});

这样做的缺点是你添加了一堆事件侦听器,它不会被触发为将来的元素。

正如其他人所提到的,使用 on()(如果使用较新的 jQuery(或delegate()(如果使用较旧的(进行事件委托是最好的,因为它只附加一个事件侦听器,并且将与附加事件后添加的未来元素一起使用。

$(document).on('click', 'a.record', function() {
   // Any `a` element with a class of `record` was clicked, now or in the future.
});

我在这里使用了document,但你应该使用不会改变的最近的祖先,这可能是你描述的ul元素。