我的jQuery点击事件有一个简单的问题,我无法解决。
以下是代码:
$('document').ready(function() {
var links = $('.brandLinks li a');
console.log(links.length); // there are total 24 items are there
for(var i = 0; i < links.length; i++) {
links[i].click(function(e){
console.log('click.');
});
}
});
答案 0 :(得分:6)
您不需要循环。大多数jQuery方法将在匹配集中的每个项上运行。此外,不应引用document
。您想要选择实际的document
对象。如果引用它,jQuery将寻找标签名为“document”的元素:
$(document).ready(function() {
$('.brandLinks li a').click(function () {
console.log('click');
});
});
旁注:在这种情况下,字符串“document”与任何内容都不匹配并不重要。 ready
方法将对任何jQuery对象进行操作,无论它包含什么(即使它是空的)。对于其他人来说,阅读你的代码(以及将来你自己)来实际选择document
对象会更有意义。出于这些原因,我通常使用替代形式:
$(function () {
// This is the same as $(document).ready(function () {});
});
答案 1 :(得分:0)
您不需要循环来绑定事件。你可以一次绑定整个元素。 link[index]
是本机JavaScript元素。你应该使用$(link[k]).click
。
$(document).ready(function() {
var links = $('.brandLinks li a');
console.log(links.length); // there are total 24 items are there
links.click(function(){
console.log('click.');
});
});
答案 2 :(得分:0)
试试这个
$(document).ready(function() {
var links = $('.brandLinks li a');
console.log(links.length); // there are total 24 items are there
for(var i = 0; i < links.length; i++) {
links[i].click(function(e){
console.log('click.');
});
}
});
答案 3 :(得分:0)
您的代码存在的问题是您没有处理关闭问题,请检查this
以下应该工作:
var link = links[i];
$(link).click((function(value) {
return function() {
//
};
})(link));