Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   передача this в addEventListener (https://javascript.ru/forum/misc/28318-peredacha-v-addeventlistener.html)

bot87 15.05.2012 00:45

передача this в addEventListener
 
Взгляните пожалуйста на мой бред

Читал что проблемы в ие при передаче this в обработчик.
Есть набор Checkboxs и я им назначаю обработчик
checkboxs=document.getElementsByTagName('input')
for(i=0;i<checkboxs.length;i++){
	if(checkboxs[i].addEventListener){
checkboxs[i].addEventListener('click',handler(i),false)	
	}
	else{
	checkboxs[i].attachEvent('onclick',handler(i))	
	}
	
}

В обработчик я хочу предать параметр ,которЫй равен текущей позиции в массиве.
Теперь внутри функции я хочу получать доступ к текущему checkbox через checkboxs[index]
function handler(index){

document.getElementById('val').value=checkboxs[index]

}


Но не выходит

devote 15.05.2012 04:22

var checkboxs = document.getElementsByTagName('input'),
    eventType = document.addEventListener ? ["addEventListener", ""] : ["attachEvent", "on"];

for( var i = 0; i < checkboxs.length; i++ ) {
    checkboxs[ i ][ eventType[ 0 ] ]( eventType[ 1 ] + "click", function( e ){
        e = e || window.event;
        handler.call( e.target || e.srcElemnt, e );
    }, false );
}

function handler( e ){
    document.getElementById('val').value = this.value;
}

bot87 15.05.2012 09:00

:) спс ,сейчас буду разбираться.


Часовой пояс GMT +3, время: 05:17.