সমস্যা
কলব্যাকের অভ্যন্তরে, আজাক্স কলের অবজেক্টটিকে thisবোঝায় jqXHR, ইভেন্ট হ্যান্ডলার যে উপাদানটির সাথে আবদ্ধ ছিল সেটিকে নয়। কীভাবে thisজাভাস্ক্রিপ্টে কাজ করে সে সম্পর্কে আরও জানুন ।
সলিউশন
যদি ES2015 + আপনার কাছে উপলভ্য থাকে তবে তীর ফাংশনটি ব্যবহার করা সম্ভবত সহজ বিকল্প হবে:
$.ajax({
//...
success: (json) => {
// `this` refers to whatever `this` refers to outside the function
}
});
আপনি contextবিকল্পটি সেট করতে পারেন :
এই অবজেক্টটি সমস্ত অ্যাজাক্স-সম্পর্কিত কলব্যাকের প্রসঙ্গ তৈরি করা হবে। ডিফল্টরূপে, প্রসঙ্গটি এমন একটি অবজেক্ট যা কলটিতে ব্যবহৃত এজাক্স সেটিংসকে উপস্থাপন করে (এতে $.ajaxSettingsপাঠানো সেটিংসের সাথে একীভূত হয় $.ajax)। (...)
$.ajax({
//...
context: this,
success: function(json) {
// `this` refers to the value of `context`
}
});
বা ব্যবহার করুন $.proxy:
$.ajax({
//...
success: $.proxy(function(json) {
// `this` refers to the second argument of `$.proxy`
}, this)
});
বা thisকলব্যাকের বাইরের মানটির জন্য একটি রেফারেন্স রাখুন :
var element = this;
$.ajax({
//...
success: function(json) {
// `this` refers to the jQXHR object
// use `element` to refer to the DOM element
// or `$(element)` to refer to the jQuery object
}
});
সম্পর্কিত