老师请帮我解答下问题...
// 声明全局变量
var index = 0, // 当前显示图片索引,默认值为0;
prev = byId("prev"), // 上一张
next = byId("next"), // 下一张
dots = byId("dots").getElementsByTagName("span"),
pics = byId("banner").getElementsByTagName("div"), // 获取图片
size = pics.length;
// 封装getElementById()
function byId(id) {
return typeof(id) === "string" ? document.getElementById(id):id;
}
/* 封装通用事件绑定方法
element绑定事件的Dom元素
事件名
事件处理程序
*/
function addHandle(element,type,handler) {
// 非ie浏览器
if(element.addEventListener) {
element.addEventListener(type,handler,true)
}
// ie浏览器支持dom2级
else if(element.attachEvent) {
element.attachEvent("on" + type,handler)
}
// ie浏览器不支持dom2级
else {
element["on"+type] = handler;
}
}
// 点击按钮显示下一张或上一张图片
/*
这个是dom零级事件绑定
next.onclick = function() {
alert("123")
}
下面是dom二级事件
next.addEventListener("click", function(){
alert("123");
});
next.addEventListener("click", function(){
alert("456");
});
*/
//切换图片函数封装
function changeImg() {
for(var i=0; i<size; i++) {
pics[i].style.display = "none";
dots[i].className = "";
}
pics[index].style.display = "block";
dots[index].className = "active";
}
// 调用上面封装的事件绑定通用方法
//点击按钮切换图片
addHandle(prev,"click",function() {
index--;
if(index<0) index = size-1;
changeImg()
});
addHandle(next,"click",function() {
index++;
if(index>=3) index = 0;
changeImg()
});
// 图片索引小点点,点击小点点切换图片
for(var d=0; d<size; d++) {
dots[d].setAttribute("data-id",d);
addHandle(dots[d], "click", function(){
index = this.getAttribute("data-id");
// alert(index);
changeImg()
})
}点击小点点 切换不了图片 不知道哪里出问题了
12
收起
正在回答 回答被采纳积分+1
2回答
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星