前端初学者,写了一个简单的事件句柄绑定函数。
<!DOCTYPE html>
<html>
<head>
<title>class operation demo</title>
<style type="text/css">
.b1{
width: 100px;
height: 100px;
background-color: yellow;
}
.b2{
width: 300px;
height: 300px;
background-color: red;
}
</style>
<script type="text/javascript">
window.onload = function() {
var btn01 = document.getElementById("btn01");
var box = document.getElementById("box");
function bind(obj,eventStr,callback) {
if ( obj.addEventListener )
obj.addEventListener(eventStr,callback,false);
else
obj.attachEvent("on" + eventStr,function(){
callback.call(obj);
});
}
function changeClass() {
// this.className += " b2";
alert("test");
}
bind(btn01,"click",changeClass);
};
</script>
</head>
<body>
<button id="btn01">点击按钮以后修改box的样式</button>
<br /><br />
<div id="box" class="b1"></div>
</body>
</html>
提问已修改,现在的问题是:我想用这个按钮改变指定div(例如body里面的id为box的那个div)的类,但是要怎么修改bind
函数呢?或者有什么更好的解决方案呢?
bind(btn01,"click",changeClass);
传入一个函数你传的是函数的返回值
补充:
给你写个伪jq (jq不是这样写的 是用的类)
调用: