/ / jQuery Ajax .ajaxSuccess () udalosť sa nespúšťa - javascript, javascript-events, jquery

jQuery Ajax .ajaxSuccess () udalosť nie je spustená - javascript, javascript-events, jquery

Mám natívny javascriptový objekt, ktorý by som malrád priraďujem spätné volanie .ajaxSuccess. Účelom tohto dôvodu je to, že chcem aktualizovať svoj dátový model po úspešnom volaní ajaxu, ale nechcem, aby bol môj dátový model globálny pre celý súbor javascript. A áno, skontroloval som, aby som sa ubezpečil, že môj jQuery je zahrnutý predtým môj skriptový súbor.

Tu je kód:

$("#formButtonAddLink").click(function() {
$.ajax({
type: "POST",
url: "ajax/addlink",
data: {content: $("#formInputLinkContent").val(), subject: $("#formInputLinkSubject").val()},
dataType: "json",
error: function() {
alert("An ajax error occured adding link")
}
});
return false; //prevents html form submit
})

$(document).ready(function(){
var links = new Links(20,0);
$(links).ajaxSuccess(function() {
console.log("Hey.")    //This does not work.
});
$(document).ajaxSuccess(function() {
console.log("Document hey.")   //This shows up.
});
});

odpovede:

1 pre odpoveď č. 1

Základná myšlienka ajaxSuccess() je:

Kedykoľvek sa požiadavka Ajax úspešne dokončí, jQuery spustí ajaxSuccess udalosť. Všetci manipulanti, ktorí boli zaregistrovaní v tomto okamihu sa vykonáva metóda .ajaxSuccess ().

Pokiaľ to chápem z dokumentácia môžete pripojiť iba ajaxSuccess() obsluha udalosti na element, nie objekt JavaScript. To je dôvod, prečo to funguje pri pripájaní obsluhy udalostí k internetu document.

Náš event handler môžeme pripojiť k akémukoľvek prvku.

V takom prípade, ak máte niečo podobné:

<div class="links"></div>

Môžete to urobiť:

$(document).ready(function(){
$(".links").ajaxSuccess(function() {
console.log("Hey.")
// use links in here:
var links = new Links(20,0);
});
});