how to replace bindwithevent in mootools 1.3
2388 단어 mootools
var SomeClass = new Class({
initialize: function (els) {
for (var i = 0; i < els.length; i++) {
els[i].addEvent('click',
this.alert.bindWithEvent(this, [i, els[i].get('text')])
);
}
},
alert: function (event, index, text) {
alert(
index + ' -> ' + text + ' | ' +
'x:' + event.page.x + ', y:' + event.page.y
);
}
});
Here is the working version (1.2) http://jsfiddle.net/9Pn99/
Here is my version for 1.3 http//jsfiddle.net/9Pn99/1/
EDIT: I figured out how to do it, with a closure. http://jsfiddle.net/9Pn99/4/
for (var i = 0; i < els.length; i++) {
(function (j) {
els[i].addEvent('click',
function (e) {
this.alert(e, j);
}.bind(this)
);
}.pass([i], this))();
}
Is there a better solution?
EDIT2: I found another easy way:
els.each(function (el, i) {
els[i].addEvent('click',
function (e) {
this.alert(e, i);
}.bind(this)
);
}, this);
Looks like I'm talking alone.
I wonder how to replace the bindWithEvent funtion in Mootools 1.3, the example in the documentation is very basic:
Element.addEvent('click', function(e){
myFunction.bind(bind, [e]);});
But, what about if I need to pass a param to the event handler? This is the way in Mootools 1.2:
Element.addEvent('click', function(e, param) { e.stop(); alert(param) }.bindWithEvent(this,['text']);
Any idea on how to replace this in Mootools 1.3.
Update: I found a very ugly solution, but a least it works while I find a built-in solution:
Element.addEvent('click', function(e){ e.stop(); this.bind.myFunc(this.param);}.bind({bind:this, param: 'text'}));
다음으로 이동:http://stackoverflow.com/questions/4062839/how-to-replace-bindwithevent-in-mootools-1-3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Mootools에서 delay라는 지연 함수의 고급 사용법이것은 가장 간단한 용법이다. 이 함수는 1초 후에 자동으로 실행된다 delay라는 함수의 실현 방법을 봅시다. 이것은 set Timeout을 사용하여 이루어진 것이 분명하다. 그러면 우리는 그를 정리할 수 있고 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.