如何通过单击关闭刚打开的窗口与JQuery?

时间:2014-04-05 11:38:12

标签: jquery window.open

我现在可以在新的弹出窗口中打开原始大小的图片,但我希望能够通过单击它来关闭它。这是我打开它的方式:

function bigger(service)    {       
    var image = window.open(service, 'image', 'width=510,height=470,menubar=0,scrollbars=0,titlebar=0,left=200,toolbar=0,top=200,resizable=0');
};

使用此click事件激活该功能:

$("#services div img").click(function() {
    bigger($(this).attr('src'));
});

这部分工作得很完美。但是现在我试图通过点击窗口上的任何地方来关闭窗口。这是我尝试过的事情的变种:

$(image).click(function()   {
    $(image).close();
});

这给了我错误:未捕获的ReferenceError:图片未定义

现在最后一点是我真的不知道该怎么做,我环顾四周并尝试了一些变化,但我似乎无法做到正确,所以这就是为什么我打电话给你的帮助:我怎么能点击它关闭这个打开的窗口?

2 个答案:

答案 0 :(得分:2)

可以这样做:

DEMO jsFiddle

function bigger(service) {
    var image = window.open("", 'image', 'width=510,height=470,menubar=0,scrollbars=0,titlebar=0,left=200,toolbar=0,top=200,resizable=0');
    $(image.document.body).append('<img style="width:100%" src="' + service + '">').on('click', function(){
        image.close();
    });
}

答案 1 :(得分:0)

function bigger(service)    {       
    var image = window.open(service, 'image', 'width=510,height=470,menubar=0,scrollbars=0,titlebar=0,left=200,toolbar=0,top=200,resizable=0');
};

这会将image变量的范围限制为函数本身(demo,请参阅控制台以获取错误)。

所以,也许,你需要这样做:

var image;
function bigger(service)    {       
    image = window.open(service, 'image', 'width=510,height=470,menubar=0,scrollbars=0,titlebar=0,left=200,toolbar=0,top=200,resizable=0');
};