Переглянути джерело

Correct reference for this in AJAX callbacks

Previously `this` would point to the AjaxAdapter that was being used to
process the AJAX, or sometimes the JS object holding the AJAX options,
instead of the jQuery element that Select2 was attached to. This fixes
the issue so `this` will consistently point to the jQuery element, just
like in past versions of Select2.

This closes https://github.com/select2/select2/issues/3361
This closes https://github.com/select2/select2/pull/3410
SilverFire - Dima Naumenko 9 роки тому
батько
коміт
3037b933e2
1 змінених файлів з 2 додано та 2 видалено
  1. 2 2
      src/js/select2/data/ajax.js

+ 2 - 2
src/js/select2/data/ajax.js

@@ -57,11 +57,11 @@ define([
     }, this.ajaxOptions);
 
     if (typeof options.url === 'function') {
-      options.url = options.url(params);
+      options.url = options.url.call(this.$element, params);
     }
 
     if (typeof options.data === 'function') {
-      options.data = options.data(params);
+      options.data = options.data.call(this.$element, params);
     }
 
     function request () {