/ / jQuery Ajax .ajaxSuccess () ईवेंट फायरिंग नहीं - जावास्क्रिप्ट, जावास्क्रिप्ट-ईवेंट, गुड़

jQuery अजाक्स .ajaxSuccess () घटना फायरिंग नहीं - जावास्क्रिप्ट, जावास्क्रिप्ट-घटनाओं, jquery

मेरे पास एक देशी जावास्क्रिप्ट वस्तु है, जो मैं करूँगाजैसे .ajaxSuccess callback को असाइन करना चाहते हैं। इसका उद्देश्य यह है क्योंकि मैं चाहता हूं कि मेरे डेटा मॉडल को अजाक्स कॉल के सफल होने के बाद अपडेट किया जाए, लेकिन मैं अपने डेटा मॉडल को पूरी जावास्क्रिप्ट फ़ाइल में वैश्विक नहीं बनाना चाहता हूं। और हां, मैंने यह सुनिश्चित करने के लिए जाँच की कि मेरा jQuery पहले शामिल है। मेरी स्क्रिप्ट फ़ाइल।

यहां कोड है:

$("#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.
});
});

उत्तर:

उत्तर № 1 के लिए 1

का मूल विचार ajaxSuccess() है:

जब भी अजाक्स अनुरोध सफलतापूर्वक पूरा होता है, jQuery ट्रिगर हो जाता है ajaxSuccess घटना। किसी भी और सभी संचालकों के साथ पंजीकृत किया गया है .ajaxSuccess () विधि को इस समय निष्पादित किया जाता है।

जहां तक ​​मुझे इसकी समझ है प्रलेखन आप केवल संलग्न कर सकते हैं ajaxSuccess() ईवेंट हैंडलर ए तत्त्वजावास्क्रिप्ट ऑब्जेक्ट नहीं है। यही कारण है कि यह घटना हैंडलर को संलग्न करते समय काम करता है document.

हम अपने ईवेंट हैंडलर को किसी भी तत्व से जोड़ सकते हैं।

इस मामले में यदि आपके पास कुछ समान है:

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

तुम यह कर सकते थे:

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