2017-02-20 8 views
2

Ich habe große Anzahl von Dateien auf meiner Website und ich versuche, Download-Limit für jeden Benutzer setzen.
Download-Link sieht so aus.Stoppen Link href, wenn bestimmte Bedingung in jquery erfüllt ist

<a class="btn btn-primary" id="download" href="<?php echo $content_url;?>" onclick=”var that=this;_gaq.push([‘_trackEvent’,’Download’,’PDF’,this.href]);setTimeout(function(){location.href=that.href;},200);return false;” target="_blank"> 
    <i id = "<?php echo $id; ?> " class="fa fa-download">&nbsp;&nbsp;</i>Download 
    </a> 

Onclick Funktion

<script type="text/javascript"> 
$("#download").click(function(event){ 
$.ajax({ 
    url  : '/ajax/download-file.php', 
    dataType : 'json', 
    aysnc : false, 
    success : function(response) 
    { 
    if (response.error_type == 'login') 
    { 
     $("#login_modal").modal('show'); 
    } 
    else 
    { 
     var login_id = "<?php 
     if(isset($_SESSION['login_id'])) 
     { 
     echo $_SESSION['login_id']; 
     } 
     ?>"; 
     console.log(login_id); 
     $.ajax({ 
     type : 'POST', 
     url : '/ajax/track_downloads.php', 
     data : {login_id : login_id}, 
     async : false, 
     success : function(response) 
     { 
      var download_link = $("#download").attr("href"); 
      if(response == 1) 
      { 
      return false; 
      alert("Your Download Limit Has Been Exceeded"); 
      } 
     } 
     }); 
     } 
    } 
    }); 
    }); 
    </script> 

Mein Code funktioniert gut und überprüft es für den jeden Benutzer zugeteilt Download-Limit, wenn es weniger als 20 pdf in nächsten Tab geöffnet bekommen, aber wenn Grenze 20 Alarm kreuzt Die Box sollte angezeigt werden und die Verbindung sollte nicht weitergehen.

Also Hauptfrage ist: Ich möchte Link zu stoppen, wenn Antwort == 1, Ich habe versucht, event.stopPropagation und event.preventDefault und .remove bereits, aber es funktioniert nicht.

Antwort

0

stop link means, wenn Ihr track_downloads.php Code 1 zurückgeben, dann können Sie Ihren Link entfernen, indem Sie einfach .remove(); Methode von jquery aufrufen. Dies ist die beste Lösung, die Sie nicht verwenden können, deaktivieren oder anzeigen: keine, die nicht sicher ist.

Verwandte Themen