gpt4 book ai didi

javascript - jQuery 在选项卡中打开 PDF - 正在打开其他选项卡

转载 作者:行者123 更新时间:2023-11-29 20:52:39 24 4
gpt4 key购买 nike

我正在使用 jQuery 在新窗口或选项卡中打开 PDF。在大多数情况下,它是有效的。我可以单击链接,PDF 在新选项卡中打开。

当我打开另一个 PDF 时出现问题。

新的 PDF 将与之前的 PDF 一起打开。当我到达第 5 个 PDF 时,我之前打开的 PDF 将有 4 个额外的选项卡。

我正在处理数据表。我单击一个包含数据属性的链接,然后打开一个模式。在模式内部,我将有另一个点击事件,然后将打开 PDF:

$('#resultsTable').on('click', 'tr > td > a.uploadDocs', function(e)
{
e.preventDefault();
$('#editForm input, select').val(''); // <- clear previous values

var editbooking = $(this).attr('data-editbooking');
var editpartnercode = $(this).attr('data-editpartnercode');

// open PDF click event
// takes vars editbooking and editpartner to build path and filename
$('#downloadPDF').on('click', function()
{
var pdf = '../PartnerUploads/' + editpartnercode + '/' + editbooking + ".pdf";
$.get(pdf)
.done(function()
{
window.open(pdf);
}).fail(function(textStatus)
{
if(textStatus.status == 404)
{
return false;
}
});
// *** edit ***
$('#downloadPDF').off('click');
});
});

就导航到目录然后打开文件而言,以上所有操作均有效。但它不应打开之前打开的所有文件。

我如何找到为什么在打开 PDF 时会打开其他选项卡?

最佳答案

如评论中所述,您具有嵌套事件绑定(bind)。

每次单击 #resultsTable 时,您都会为 #downloadPDF 创建一个新事件,从而导致您打开的选项卡数量呈指数级增长。

使用$('#downloadPDF').off('click')window.open(pdf); 之后和 fail(function(textStatus).


解决方案:

$('#resultsTable').on('click', 'tr > td > a.uploadDocs', function(e)
{
e.preventDefault();
$('#editForm input, select').val(''); // <- clear previous values

var editbooking = $(this).attr('data-editbooking');
var editpartnercode = $(this).attr('data-editpartnercode');

// open PDF click event
// takes vars editbooking and editpartner to build path and filename
$('#downloadPDF').on('click', function()
{
var pdf = '../PartnerUploads/' + editpartnercode + '/' + editbooking + ".pdf";
$.get(pdf)
.done(function()
{
window.open(pdf);
$('#downloadPDF').off('click');
}).fail(function(textStatus)
{
if(textStatus.status == 404)
{
return false;
}
$('#downloadPDF').off('click');
});
});
});

关于javascript - jQuery 在选项卡中打开 PDF - 正在打开其他选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51044750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com