2015-10-23 63 views
0

我有簡單的點擊執行post()。此點擊也觸發鏈接。所以我試圖阻止它,發送後點擊確定,鏈接應該執行。點擊確定後無法工作。jQuery點擊發布多個請求

代碼:

$(".prodlink").click(function(e){ 
        e.preventDefault(); 
        var f=$(this).attr('href');     
        // product id 
        var product_id = f.match(/product_id=([^&]+)/)[1]; 
        var website_url = '<?php if(isset($_SERVER['HTTP_REFERER'])){echo $_SERVER['HTTP_REFERER'];} else { echo 'Unknown';} ?>'; 
        var datum = '<?php echo date('Y-m-d'); ?>';      


        $.post("<?php echo HTTP_SERVER; ?>/catalog/affiliatecollections/initiate.php",{product_id:product_id,click:1,website_url:website_url, datum: datum}, 
         function(event) {  
           alert("You are leaving this page");          
           //location.reload(); 
          }  
         );     
        return true;        
      }) 

Example

+0

我認爲最好的方法是使用一個模態窗口與實際OK標籤的用戶點擊。 –

回答

1

這是不是它是如何工作的。鏈接將在帖子運行時執行。

而是這樣做:

$(".prodlink").on("click",function(e) { 
    e.preventDefault(); 
    var f = $(this).attr('href'); 
    // product id 
    var product_id = f.match(/product_id=([^&]+)/)[1]; 
    var website_url = '...'; 
    var datum = '...'; 
    $.post("...", { 
     product_id: product_id, 
     click: 1, 
     website_url: website_url, 
     datum: datum 
    }, 
    function(event) { 
     alert("You are leaving this page"); 
     location.replace(f); // HERE you execute the link 
     // or 
     // window.open(f,"_blank") 
    } 
); 
}); 

或者有新的頁面執行後

UPDATE

如果鏈接看起來像這樣

<a href="newpage.html" target="_blank" class="prodlink">click</a> 

那麼簡單應該能夠沒有在的preventDefault:

$(".prodlink").on("click",function(e) { 
    var f = $(this).attr('href'); 
    // product id 
    var product_id = f.match(/product_id=([^&]+)/)[1]; 
    var website_url = '...'; 
    var datum = '...'; 
    $.post("...", { 
     product_id: product_id, 
     click: 1, 
     website_url: website_url, 
     datum: datum 
    }, 
    function() { console.log("succcess") } 
); 
}); 
+0

這個工程,但我需要在新標籤中打開它,這可能嗎? – Grasper

+0

window.open(f,「_ blank」)不能正常工作,因爲瀏覽器會阻止它 – Grasper

+0

請參閱更新 – mplungjan

1

爲什麼不直接使用

window.location.replace($(".prodlink").attr('href')) 
+0

它也需要目標空白 – Grasper