Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как передать аргумент в функцию, но не исполнить ее (addEventListener) (https://javascript.ru/forum/misc/36657-kak-peredat-argument-v-funkciyu-no-ne-ispolnit-ee-addeventlistener.html)

9xakep 23.03.2013 18:35

Как передать аргумент в функцию, но не исполнить ее (addEventListener)
 
with(lis[i].getElementsByTagName('img')[0]) {
				addEventListener('mouseover', instance.Stop(i), false); // i - это цикл
				addEventListener('mouseout', instance.Continue,false);
}
this.Stop = function (a) {
	
		end = true;
		lis[index].className = ''
		this.parentNode.className = 'active'

}


Как мне передать аргумент в instance.Stop, но при этом не исполнить ее? Иначе, выдает ошибку насчет этого: this.parentNode.className = 'active'

danik.js 23.03.2013 18:46

ES5:
instance.stop.bind(instance, i)
либо:
(function(i){ return function(){ instance.stop(i) } })(i)

С каких пор в JavaScript стал использоваться PascalCase ?

9xakep 23.03.2013 19:16

danik.js,
PascalCase что это?

И спасибо за bind

danik.js 23.03.2013 19:28

camelCase = javaScriptStyle
PascalCase = CSharpStyle

или типа того

megaupload 23.03.2013 21:59

бро ты я смотрю совсем соскучился))
\пиши в личку я пока тут сижу http://vk.com/id202822507

megaupload 23.03.2013 22:00

п.с.
var q = "Ашот";

function ololo (name){ alert(name) }

addEventListener('click', function(){ ololo(q)  })

megaupload 23.03.2013 22:02

за место
addEventListener('click', ololo(q) )

пишешь
addEventListener('click', function(){ ololo(q)  })

или
addEventListener('click',  ololo.bind(null, q) )



а конкретно в твоем случае danik.js правильно подсказал) надо ЗНАЧЕНИЕ i брать в замыкание
ну а в обычных случайх пойдет и как я показал

9xakep 24.03.2013 16:59

danik.js,
ааа...ты спришваешь почему я начинаю с большой буквы? Потому что моя ide выделила слово stop как зарезервированное, и continue тоже, я не стал эксперементировать, и написал с большой

danik.js 24.03.2013 17:07

Ну stop вроде не зарезервировано. А с continue были бы проблемы в IE7-8. До чего ж он туп, этот ишак. Хотя можно так: instance['continue']

9xakep 24.03.2013 18:52

danik.js,
Помойму все конфликты как раз и решаются начинанием с одной большой заглавной буквы)


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