Prototype学习笔记系列之Event.stopObserving().
为了让
stopObserving工作, 你必须传递和
observe调用完全一样的参数.
<script src="./scriptaculous/lib/prototype.js" type="text/javascript"></script>
<script src="./scriptaculous/src/scriptaculous.js" type="text/javascript"></script>
<script src="./scriptaculous/src/scriptaculous.js" type="text/javascript"></script>
<div id='div1'>Hello world!</div>
<script type='text/javascript'>
var ClassA = Class.create();
ClassA.prototype = {
initialize : function(){
this.handler=this._handlerA.bind(this);
//把当前对象(ClassA)的_handlerA方法绑定到当前对象(ClassA)的handler属性.
},
},
observe : function(){
//this.handler=this._handlerA.bind(this);
Event.observe($('div1'),'click',this.handler);
//this.handler=this._handlerA.bind(this);
Event.observe($('div1'),'click',this.handler);
Event.observe($('div1'),'click',this._handlerB);
},
_handlerA : function(){
alert('observer a');
},
alert('observer a');
},
_handlerB : function(){
alert('observer b');
},
alert('observer b');
},
stopObserving : function(){
//this.handler=this._handlerA.bind(this);
Event.stopObserving($('div1'),'click',this.handler);
//this.handler=this._handlerA.bind(this);
Event.stopObserving($('div1'),'click',this.handler);
Event.stopObserving($('div1'),'click',this._handlerB);
},
},
test: function () {
return this._handlerA.bind(this);
}
return this._handlerA.bind(this);
}
}
var ins = new ClassA();
ins.observe();
alert(ins.test());
//ins.stopObserving()
</script>
alert(ins.test());
//ins.stopObserving()
</script>