【发布时间】:2009-11-01 22:29:54
【问题描述】:
我试图自己制作一个 javascript 图库脚本。 当我完成它时,我很高兴,直到我注意到它在 IE6 中不起作用。 在 Firefox 中,一切看起来都很好。于是我开始调试。
我注意到,setAttribute 肯定是问题之一。甚至可能是最大的。 因此,在查看了关于使用参数设置 onclick 属性的有趣article 之后,我有点高兴,但有一件事对我来说仍未解决。使用回调方法很棘手,但我只是不知道如何以这种方式传递事件对象。这是旧代码示例:
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 = 回调(f,参数)
传递事件对象值,并在以后使用它们?
【问题讨论】:
标签: javascript events callback