2017-08-16 48 views
1

说我有像这样一个标准的HTML链接:如何向按钮添加第二个功能?

<a href='https://whateverdomain.com/whatever.pdf' class='pdf-download'> 

如何我都链接到.pdf火一个jQuery功能在同一时间?

我到目前为止已经写了这个:

$('.pdf-download').addEventListener('click', function() { 
    $.getJSON('/documents/email', function(email) { 
    if (email.documentID && email.message == 'success') { 
     console.log('Sending email...'); 
    }; 
    }, 
false); 

但是,这只是我的阻止按钮被点击。我要指出的是监听器是一个更大的部分功能:

function checkForAnswers() { 
    var count = $('.pdf-checklist').filter(function() { 
    return $(this).val() !== ""; 
    }).length; 
    var total = $('.pdf-checklist').length; 

    $('.pdf-download').addEventListener('click', function() { 
    $.getJSON('/documents/email_press_ad', function(email) { 
     if (email.documentID && email.message == 'success') { 
     console.log('Sending email...'); 
     }; 
    }, false); 

    if (count == total) { 
    $('.pdf-download').removeClass('disabled'); 
    $('.pdf-download').removeAttr('disabled'); 
    } else { 
    $('.pdf-download').addClass('disabled'); 
    $('.pdf-download').attr('disabled', 'disabled'); 
    } 
    console.log(count + '/' + total); 
} 

$('.pdf-checklist').on('keyup', checkForAnswers); 
+1

您可以取消该活动,您是否通过电子邮件将window.location发送至URL? – Deckerz

+0

仅供参考jQuery不使用'addEventListener',它使用'click()'或'on()'。检查文档:http://api.jquery.com –

+0

您可以在新窗口中打开pdf并执行所需的点击功能。如果你想在同一窗口中打开PDF,我不知道你怎么想象这个工作。 – user5014677

回答

3

你可以尝试只用on

$(".pdf-download").on("click", function (e) { 
    e.preventDefault(); 
    //do your stuff. 

    //navigate to a click href via window.location 
    window.location = $(this).attr('href'); 
}); 

所以你取消点击默认事件和手动强制代码之后的URL变化结合它做完了。

根据评论编辑。

+0

这很好。非常感谢! –

相关问题