如何在javascript中将单击事件分配给多个按钮?
在Javascript中,哪一行与以下语句等效如何在javascript中将单击事件分配给多个按钮?,javascript,jquery,Javascript,Jquery,在Javascript中,哪一行与以下语句等效 $("#element1,#element2").on("click", runFunction); 例如: var f = function() { /* Event handler */ }, els = document.querySelector(/* selector */); for(var i=0, l=els.length; i<l; ++i) els[i].addEventListener('click',
$("#element1,#element2").on("click", runFunction);
例如:
var f = function() { /* Event handler */ },
els = document.querySelector(/* selector */);
for(var i=0, l=els.length; i<l; ++i)
els[i].addEventListener('click', f, false);
只需在代码中不保留任何空格即可
e1=document.getElementById('element1'),e2=document.getElementById('element2');if(addEventListener){e1.addEventListener('click',runFunction,false);e2.addEventListener('click',runFunction,false);}else{e1.attachEvent('click',runFunction);e2.attachEvent('click',runFunction);}
几乎可以肯定,你真正想要的是: jQuery的事件委派 这是每个人都在寻找的,即使他们还没有完全意识到;) 不要直接将处理程序绑定到元素上——而是将处理程序绑定到父元素(可能),并使用jQuery的事件委派模型指定一个选择器,通过该选择器过滤冒泡子事件。在下面的例子中,我们在
上放置一个单击处理程序,该处理程序被指定为触发a[href]
链接单击
// Handles all link clicks under the <body> tag (superior methodology -- much optimum)
$('body').on('click','a[href]',function(jqEvent){
var $a = $(this);
console.log("Link Clicked:",$a.attr('href'));
});
// Direct binding, which is essentially what the original asker had (inferior)
$('a[href]','body').on('click',function(jqEvent){
var $a = $(this);
console.log("Link Clicked:",$a.attr('href'));
});
//处理标签下的所有链接点击(高级方法——非常优化)
$('body')。在('click','a[href]',函数(jqEvent)上{
var$a=$(本);
log(“点击链接:”,$a.attr('href');
});
//直接绑定,本质上是原始询问者拥有的(低级)
$('a[href],'body')。在('click',函数(jqEvent)上{
var$a=$(本);
log(“点击链接:”,$a.attr('href');
});
我不是数学家,但是,还有不止一行吗?那就是两个元素的点击事件JQuery,我希望它转换为JavaScript。你在问如何在普通的老JavaScript中实现这一点吗?(没有jquery?@user3191903:jquery是Javascript在一行中没有等价物。“只要删除换行符,它就会在一行中。”这正是我的想法…;)
// Handles all link clicks under the <body> tag (superior methodology -- much optimum)
$('body').on('click','a[href]',function(jqEvent){
var $a = $(this);
console.log("Link Clicked:",$a.attr('href'));
});
// Direct binding, which is essentially what the original asker had (inferior)
$('a[href]','body').on('click',function(jqEvent){
var $a = $(this);
console.log("Link Clicked:",$a.attr('href'));
});