单击外部$('html')时关闭图像。单击();与开放形象冲突?

时间:2013-10-28 07:35:24

标签: javascript jquery html css image

我使用简单的css和js在单击图像时将图像显示为弹出窗口,并在顶部关闭按钮以关闭图像。 openimage和closeimage都是js函数 我已实施为 打开图像功能

function imgv(x,y,img)
{
     document.getElementById('imgv_i2').src = img;
     document.getElementById('imgv_i2').style.width = x;
     document.getElementById('imgv_i2').style.height = y;
     document.getElementById('imgv_i2').width = x;
     document.getElementById('imgv_i2').height = y;
    imgToMiddle('imgv_i2');
    document.getElementById('imgv_i2').style.display = 'block';
}

关闭图片

function closeimgv()
{
    document.getElementById('imgv_i2').style.display = 'none';
    document.getElementById('imgv_close').style.display = 'none';
}

事件为

<a href="javascript:void(0);"  onclick="imgv(101,101,'image url');"><img src="image src"></a>

现在在外面点击时关闭图片我使用了these

$('#imgv_i2').click(function(event){
    event.stopPropagation();
});
$('html').click(function() {
if(document.getElementById('imgv_i2').style.display == 'block') {
            closeimgv();
    }
});

现在发生的情况是,当点击触摸打开图像时,关闭图像功能也触发了如何在触发打开图像功能后进行$('html').click();绑定,并在关闭图像功能后取消绑定。感谢。

2 个答案:

答案 0 :(得分:0)

尝试

$(document).click(function(ev) {
    //avoid clicks on image itself
    if($(ev.originalTarget).is("whatever triggers image opening")) {return;} 

    if(document.getElementById('imgv_i2').style.display == 'block') {
            closeimgv();
    }
});

答案 1 :(得分:0)

我建议您使用jquery插件进行厚盒或弹出,因为它们非常简单,易于实现和自定义。有许多开源插件可供试用,它们确实提供了您要求的定制类型!