所以我有一个按钮数组,当我尝试为每个按钮指定一个这样的点击事件
button[i].bind("click", function() ...
它说Object#没有方法“绑定”。
可能是什么问题?
答案 0 :(得分:1)
你应该试试
$(button[i]).on("click", function(){});
button[i]
是一个javascript对象,因此您需要使用$(button[i])
在jQuery对象中转换它以应用jquery事件。
答案 1 :(得分:1)
button[i]
不是jquery对象,因此它没有bind
函数。
您没有为我提供足够的代码来为您提供完整的解决方案,但您最终应该
$(button[i]).bind("click", function(){});
答案 2 :(得分:0)
数组"按钮"可能包含选择器(像"#xyz"这样的字符串),而不是对象。您需要将它们转换为对象:
$(button[i]).bind("click", function()
答案 3 :(得分:0)
给出以下HTML:
<button>Something</button>
<button>Something</button>
<button>Something</button>
您可以按如下方式获取按钮数组:
var buttons = document.getElementsByTagName("button");
然后将整个数组传递给jQuery来绑定按钮:
$(buttons).click(function(){
alert("hello");
});
或者只选择所有按钮开始:
$("button").click(function(){
alert("hello");
});
我要传达的主要观点是,您很可能不需要使用.forEach
迭代按钮[]。
答案 4 :(得分:0)
如果这些按钮存在于一个共同的祖先中,那么绑定该父元素上的点击会更有效。
$('.parent').on('click','button',function(e){
...
});
如果这些按钮具有通用功能,则可以使生活更轻松 - 如果每个功能都需要不同的行为,那么可以使用按钮上的数据,您可以为每个按钮指定不同的方法。