首页 > onclick事件在html中有效,在js中失效?

onclick事件在html中有效,在js中失效?

按钮的onclick事件在html中有效,但是后来为了传多一个参数savePos,在js中设置点击事件,但是没有效果。为什么?


document.getElementsByClassName("lay-btn")[0].onclick=function(){}


getElementsByClassName得到是元素集,你需要取其中一个来添加事件。


从题主的描述来看,这个点击事件是后来加的,然后事件没有被触发。可以从以下两个角度来考虑解决方法:

  1. 如楼上所说,确保拿到的是一个单个的元素。也就是说,我们要从得到的数组里面(...byClassName("..."))选出具体的一个元素来;

  2. 事件执行的前提是,确保事件是绑定在元素上的,也就是说,这个绑定的元素是必须要存在的。那么,就要注意等整个页面加载完毕后,我们再去用元素绑定事件。所以最后把注册事件这类的代码放到window.onload = function(){ //do something }里面。

题主可以按这个思路试一下,如果有问题,我们可以继续讨论。


document.getElementsByClassName()返回的是多个元素的HTMLCollection,你需要去做循环


getElementsByClassName,请仔细看这个函数的名字,重点是这个 => Elements,这是复数形式。
所以,它返回的是什么?


你拿到的是一个数组,应该要循环取出,然后加上去,你直接用jquery委托事件不就行啦


document.getElementsByClassName('lay-btn')[0]

【热门文章】
【热门文章】