unbind跟bind解决叠加事件的原理

unbind和bind解决叠加事件的原理
今天发现unbind和bind事件一起使用可以解决事件的叠加问题,但是不明白其中的原理,希望高手能解释一下为什么?
$().ready(function(){
//给div添加click监听事件
for(var i=0;i<3;i++) {
/**
 * for循环执行了3次,事件叠加了3次
 * $("div").click(function(){
alert("test");
});*/
/**
 * 通过unbind解除事件的叠加
 */
$("div").unbind("click");
$("div").bind("click",function(){
alert("event");
});
}
});
未使用bind和unbind时,弹出3次事件,使用unbind和bind之后就只有一次了,请求执行流程和原理,谢谢。。。
------解决方案--------------------
for循环三次  调用三次click函数会绑三个click事件, unbind会把该对象上的事件全部解绑,再来调用一次bind函数就剩最后这个click事件了
------解决方案--------------------
事件监听是一对多的
也就是一个事件可以绑定多个 响应

for(var i=0;i<3;i++) {
/**
 * for循环执行了3次,事件叠加了3次
 * $("div").click(function(){
alert("test");
});


你这样 不就是 给了 3个响应

unbind是解除指定的事件的所有监听响应(不指定事件则 针对所有事件)

xx.unbind(....)
xx.bind('click'....)
不就代表 
1.移除所有事件响应
2.绑定一个click事件的响应


另外我不知道 为什么这么明显的代码 还要有疑问