jQuery: Anker href onclick erfassen und asynchron übermitteln

Lesezeit: 3 Minuten

Ich komme fast nie dazu, mit Client-seitigem Zeug zu spielen, und diese vermutlich einfache Aufgabe tritt mir in den Hintern 🙂

Ich habe einige Verbindungen. OnClick Ich möchte die Standardaktion verhindern, die Href-URL erfassen, ein Ajax-GET an diese URL senden und einfach alert() mit den ergebnissen … aber ich komme nicht einmal über die startlinie 🙂

Beispielanker für die Spielzeit:

<a class="asynch_link" href="https://stackoverflow.com/questions/12648916/good/1.html">Click Here</a>
<a class="asynch_link" href="good/2.html">Click Here</a>

Jetzt habe ich mit ein paar Vorschlägen gespielt ähnlich Anfragen auf SO, aber die Links führen immer noch dazu, dass der Browser zur href-URL navigiert.

Auch mit gerade

<script type="text/javascript">
    $('a').click(function (event) 
    { 
         event.preventDefault(); 
         //here you can also do all sort of things 
    });
</script>

…die Links führen immer noch auf die andere Seite.

Ich fühle mich hier irgendwie wie ein Kleinkind 🙂

Jede Hilfe wird sehr geschätzt.

Und ja, ich BIN einschließlich jQuery 🙂
<script src="https://67.20.99.206/javascripts/jqueryCountdown/1-5-11/jquery.countdown.js" type="text/javascript" charset="utf-8"></script>

  • jquery.countdown.js scheint ein jQuery-Plugin zu sein. Schließen Sie auch die vollständige jQuery-Bibliothek ein? Wie zum Beispiel ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js

    – Benutzer ist beschädigt

    29. September 2012 um 0:44 Uhr

  • DU MEINE GÜTE !!!!! … Ich habe die falsche Zeile in meine Sandbox kopiert/eingefügt … hahaha … oh, ich werde jetzt total rot rt .. whooooh boy … Thanks-a-bunch! 🙂

    – mOrloff

    29. September 2012 um 4:10 Uhr

Benutzer-Avatar
mOrloff

$('a').click(function(event) { 
    event.preventDefault(); 
    $.ajax({
        url: $(this).attr('href'),
        success: function(response) {
            alert(response);
        }
    });
    return false; // for good measure
});

  • Ich weiß, das ist Jahre alt, aber es hat mir geholfen. Vielen Dank!

    – Mike Roberts

    29. Mai 2015 um 4:41 Uhr

Benutzer-Avatar
Codingbiz

Versuche dies

$('a').click(function (event) 
{ 
   event.preventDefault(); 

   var url = $(this).attr('href');
   $.get(url, function(data) {
     alert(data);
    });

 });

  • Vielen Dank. Du hast mich auf den richtigen Weg gebracht. Aus irgendeinem Grund wurde nichts zurückgegeben, also habe ich das geändert get aus und zusammen ein ajax angerufen und alles zum Laufen gebracht (ähnlich wie @sushanth schließlich vorschlug) … vielen Dank

    – mOrloff

    29. September 2012 um 19:11 Uhr

Das Problem dabei ist, dass die Events werden nicht angehängt zu Ihrem Element, da sie nicht im DOM-Ready-Event gebunden werden. Versuchen Sie, Ihre Ereignisse in das DOM-bereite Ereignis aufzunehmen, und wenn es funktioniert, wird die Warnung angezeigt

<script> 
    $(function() {
         $('a').click(function(event) {
            event.preventDefault();
            alert('fff')
        //here you can also do all sort of things 
        });
    }); 
</script>

Senden Sie danach die Ajax-Anfrage und senden Sie das Formular in der Success-Callback-Funktion ab.

<script> 
    $(function() {
         $('a').click(function(event) {
             event.preventDefault();
             $.ajax({
                 url: 'url',
                 dataType :'json',
                 data : '{}',
                 success :  function(data){
                     // Your Code here

                     $('#form').submit();
                 }
             })
        });
    }); 
</script>

  • Vielen Dank. Das ist sehr ähnlich zu dem, was ich am Ende hatte. Ich habe kein Formular und daher kein Absenden … aber das ist die richtige Idee. Danke noch einmal 🙂

    – mOrloff

    29. September 2012 um 19:15 Uhr

1175810cookie-checkjQuery: Anker href onclick erfassen und asynchron übermitteln

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy