jQuery点击发布多个请求

时间:2015-10-23 19:34:55

标签: jquery

我有简单的点击执行post()。此单击也会触发链接。所以我试图阻止它,在发送帖子并点击确定后,链接应该执行。点击确定后无效。

代码:

$( ".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

2 个答案:

答案 0 :(得分: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")
    }
  );
});

或者让新页面执行帖子

<强>更新

如果链接看起来像这样

<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") }
  );
});

答案 1 :(得分:1)

为什么不使用

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