例如,我有很长的按钮列表:<input type=button name=clickbutton onclick='dosomething(this)'>
但是,不是在每个按钮中调用相同的函数,而是添加一个等待点击该按钮的单个侦听事件更合理。但同样,有这个按钮,所以我需要将点击对象传递给一个函数。例如,此函数必须更新与此按钮相邻的textarea字段(nextSibling)。
答案 0 :(得分:3)
你可以使用jQuery:
$('input[name|="clickbutton"]').click(function() {
var currentButton = $(this);
alert(currentButton.attr('id'));
});
这会将click函数附加到名为“clickbutton”的所有输入元素。 currentButton
是刚刚单击的输入元素。然后,该函数会提醒currentButton
的ID。
更新:我在这里为您创建了一个工作示例:http://jsfiddle.net/Damien_at_SF/cdsWk/1/
希望有所帮助:)
答案 1 :(得分:1)
var buttons = document.getElementsByName('clickbutton');
for (var i = 0; i < buttons.length; i++)
buttons[i].onclick = function(){
this.nextSibling.innerHTML = 'clicked!';
}
答案 2 :(得分:1)
查找事件委托。这可能就是你所需要的。谷歌有很多很好的资源。
<强>更新强> 抱歉,我可以在答案中付出更多努力,以下是一些结果Google Search...
然后,您将使用开关根据event.name属性确定要采取的操作。关于这种方法很酷的事情是如果你在页面上有很多关于事件的元素,听起来就像你那样,它应该让你的页面感觉更敏感;因为浏览器不必处理每个元素的on事件的额外开销。