2017-08-16 67 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

這很好。非常感謝! –

相關問題