Я пытался сделать скрипт галереи JavaScript самостоятельно.
Когда я закончил с этим, я был очень счастлив, пока не заметил, что это не работает в IE6.
В FireFox все выглядит отлично. Итак, я начал отладку.
Я заметил, что setAttribute - одна из проблем. Может быть, даже самый большой.
Поэтому после просмотра интересующей статьи о настройке свойства onclick с параметрами я был отчасти рад, но одна вещь осталась для меня нерешенной. Использовать метод обратного вызова сложно, но я просто не знаю, как передать объект события таким образом. Вот старый пример кода:
var miniatury = document.getElementsByTagName ("a");
function zoom (){
for (l = 0; l < miniatury.length; l++) {
if (miniatury[l].className.match("zoom") != null ) {
var href = miniatury[l].href;
if (document.images) {
preImg[l] = new Image();
preImg[l].src = href;
miniatury[l].setAttribute("onclick", "przybliz(preImg["+[l]+"].src, event); event.returnValue=false; return false;");
}
else {
miniatury[l].setAttribute("onclick", "przybliz(href, event); event.returnValue=false; return false;");}
}
}
}
function przybliz(adres, event) {
pojemnik.style.display = 'block';
if (navigator.appName == "Microsoft Internet Explorer") {
pozycjaX= window.event.clientX + document.documentElement.scrollLeft
+ document.body.scrollLeft;
pozycjaY= window.event.clientY + document.documentElement.scrollTop
+ document.body.scrollTop;
}
if (navigator.appName != "Microsoft Internet Explorer") {
pozycjaX = event.clientX + window.scrollX;
pozycjaY = event.clientY + window.scrollY;
}
pojemnik.style.top = pozycjaY+'px';
pojemnik.style.left = pozycjaX+'px';
Вопрос:
Как изменить код на
onclick = callback (f, arguments)
с передачей значений объекта события и возможностью использовать их позже?