js对一类标签进行冒泡监听
下面是我的类选择器方法:functiongetClass(tag,className){varall;if(tag=="*"){all=document.all?docu...
下面是我的类选择器方法:
function getClass(tag, className) {
var all;
if (tag == "*") {
all = document.all ? document.all : document.getElementsByTagName("*");
}
else {
all = document.getElementsByTagName(tag);
}
var elements = new Array();
for (var e = 0; e < all.length; e++) {
if (all[e].className == className) {
elements[elements.length] = all[e];
}
}
return elements;
}
下面是冒泡监听方法:
function addHandler(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
}
然后我页面只有ul和li,每个li类名都叫abc,
我现在想对每个li都进行li的监听。
但是下面这样写是不正确的
var arr = getClass("li", "abc");
addHandler(arr, "click", function () {
console.log("a");
})
因为addHandler第一个参数是element而不是elements,没法触发冒泡监听。请问我要对一类标签进行冒泡监听要如何实现? 展开
function getClass(tag, className) {
var all;
if (tag == "*") {
all = document.all ? document.all : document.getElementsByTagName("*");
}
else {
all = document.getElementsByTagName(tag);
}
var elements = new Array();
for (var e = 0; e < all.length; e++) {
if (all[e].className == className) {
elements[elements.length] = all[e];
}
}
return elements;
}
下面是冒泡监听方法:
function addHandler(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
}
然后我页面只有ul和li,每个li类名都叫abc,
我现在想对每个li都进行li的监听。
但是下面这样写是不正确的
var arr = getClass("li", "abc");
addHandler(arr, "click", function () {
console.log("a");
})
因为addHandler第一个参数是element而不是elements,没法触发冒泡监听。请问我要对一类标签进行冒泡监听要如何实现? 展开
1个回答
展开全部
你加个循环呗!
var arr = getClass("li", "abc");
for(I=0;i<arr.length;i++)
{
addHandler(arr[i], "click", function () {
console.log("a");
});
}
var arr = getClass("li", "abc");
for(I=0;i<arr.length;i++)
{
addHandler(arr[i], "click", function () {
console.log("a");
});
}
更多追问追答
追问
肯定是不行的。不信你试试,反正我试了不行
追答
不行是什么问题?
首先我的代码有个地方有问题,for(I=0;i<arr.length;i++) 改成
for(i=0;i<arr.length;i++)
还不行你把代码 发我给你看看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询