Prechádzať zdrojové kódy

Warn when Select2 is called without being initalized

Since Select2 methods should not be called on an element where
Select2 has not yet been initialized, this raises an error when it
happens.  This does not silence the original error, but it does
provide the user with some more context about why they are seeing
a TypeError.

This closes https://github.com/select2/select2/issues/3173.
Kevin Brown 10 rokov pred
rodič
commit
a993ed9ca9

+ 8 - 0
dist/js/select2.full.js

@@ -5627,6 +5627,14 @@ S2.define('jquery.select2',[
         return this;
       } else if (typeof options === 'string') {
         var instance = this.data('select2');
+
+        if (instance == null && window.console && console.error) {
+          console.error(
+            'The select2(\'' + options + '\') method was called on an ' +
+            'element that is not using Select2.'
+          );
+        }
+
         var args = Array.prototype.slice.call(arguments, 1);
 
         var ret = instance[options](args);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/js/select2.full.min.js


+ 8 - 0
dist/js/select2.js

@@ -5289,6 +5289,14 @@ S2.define('jquery.select2',[
         return this;
       } else if (typeof options === 'string') {
         var instance = this.data('select2');
+
+        if (instance == null && window.console && console.error) {
+          console.error(
+            'The select2(\'' + options + '\') method was called on an ' +
+            'element that is not using Select2.'
+          );
+        }
+
         var args = Array.prototype.slice.call(arguments, 1);
 
         var ret = instance[options](args);

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/js/select2.min.js


+ 8 - 0
src/js/jquery.select2.js

@@ -25,6 +25,14 @@ define([
         return this;
       } else if (typeof options === 'string') {
         var instance = this.data('select2');
+
+        if (instance == null && window.console && console.error) {
+          console.error(
+            'The select2(\'' + options + '\') method was called on an ' +
+            'element that is not using Select2.'
+          );
+        }
+
         var args = Array.prototype.slice.call(arguments, 1);
 
         var ret = instance[options](args);

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov