如何访问对象外的onclick函数?

时间:2013-10-16 16:43:26

标签: javascript

我正在尝试实施一个照片库(我想你们所有人都已经知道了,因为我发布了很多问题:))。 如果我在DOM元素的onclick属性中指定一个函数,则该函数可以正常工作。

var img_thumb = document.createElement('img');
img_thumb.src = photos[i].img_thumb; 

img_thumb.onclick = function showImage(img_thumb) {
   var index = arr_thumb.indexOf(img_thumb.target);
   document.getElementById('largeImgPanel').appendChild(arrow_right);
   document.getElementById('largeImg').src = arr_big[index].src;
   showLargeImagePanel();
   unselectAll();
};

现在这只是函数,如果我尝试在这里添加相同的showImage函数并调用它,单击箭头更改显示的图片它不起作用。

function showLargeImagePanel() {
    document.getElementById('largeImgPanel').style.visibility = 'visible';
}

function unselectAll() {
   if(document.selection) document.selection.empty();
   if(window.getSelection) window.getSelection().removeAllRanges();
}

我尝试以不同的方式重写它,但没有任何变化,如果我点击箭头“largeImagePanel”刚关闭。

这是我最后一个版本的showImage函数:

function showImage(img_src) {
   document.getElementById('largeImg').src = img_src;
   showLargeImagePanel();
   unselectAll();
};

有人可以让我对我的问题有所了解吗?

如果我将相同的属性“onclick”写入箭头对象,则“largeImgPanel”将再次关闭>:

arrow_right.onclick = function() {
    document.getElementById('largeImgPanel').appendChild(arrow_right);
    document.getElementById('largeImg').src = next;
    showLargeImagePanel();
    unselectAll();
};

0 个答案:

没有答案