Browse Source

Testing if the object exists before use it

It's necessary to make the code compatible with IE8 and IE9.
Vitor Oliveira 11 năm trước cách đây
mục cha
commit
4955be239d
1 tập tin đã thay đổi với 11 bổ sung5 xóa
  1. 11 5
      select2.js

+ 11 - 5
select2.js

@@ -855,7 +855,9 @@ the specific language governing permissions and limitations under the Apache Lic
 
 
             if (element.length && element[0].detachEvent && self._sync) {
             if (element.length && element[0].detachEvent && self._sync) {
                 element.each(function () {
                 element.each(function () {
-                    this.detachEvent("onpropertychange", self._sync);
+                    if (self._sync) {
+                        this.detachEvent("onpropertychange", self._sync);
+                    }
                 });
                 });
             }
             }
             if (this.propertyObserver) {
             if (this.propertyObserver) {
@@ -1116,11 +1118,15 @@ the specific language governing permissions and limitations under the Apache Lic
                 if (readonly === undefined) readonly = false;
                 if (readonly === undefined) readonly = false;
                 this.readonly(readonly);
                 this.readonly(readonly);
 
 
-                syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
-                this.container.addClass(evaluate(this.opts.containerCssClass, this.opts.element));
+                if (this.container) {
+                    syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
+                    this.container.addClass(evaluate(this.opts.containerCssClass, this.opts.element));
+                }
 
 
-                syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);
-                this.dropdown.addClass(evaluate(this.opts.dropdownCssClass, this.opts.element));
+                if (this.dropdown) {
+                    syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);
+                    this.dropdown.addClass(evaluate(this.opts.dropdownCssClass, this.opts.element));
+                }
 
 
             });
             });