use a closure to bind a function to this, Prototype function.bind doesn't work in jQuery, was causing an error when blurring a select in Safari
This commit is contained in:
parent
6247674d71
commit
e8ac2bb71b
|
@ -151,14 +151,22 @@
|
||||||
return this.mouse_on_container = false;
|
return this.mouse_on_container = false;
|
||||||
};
|
};
|
||||||
Chosen.prototype.input_focus = function(evt) {
|
Chosen.prototype.input_focus = function(evt) {
|
||||||
|
var binding;
|
||||||
|
binding = this;
|
||||||
if (!this.active_field) {
|
if (!this.active_field) {
|
||||||
return setTimeout(this.container_click.bind(this), 50);
|
return setTimeout((function() {
|
||||||
|
return binding.container_click();
|
||||||
|
}), 50);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Chosen.prototype.input_blur = function(evt) {
|
Chosen.prototype.input_blur = function(evt) {
|
||||||
|
var binding;
|
||||||
if (!this.mouse_on_container) {
|
if (!this.mouse_on_container) {
|
||||||
this.active_field = false;
|
this.active_field = false;
|
||||||
return setTimeout(this.blur_test.bind(this), 100);
|
binding = this;
|
||||||
|
return setTimeout((function() {
|
||||||
|
return binding.blur_test();
|
||||||
|
}), 100);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
Chosen.prototype.blur_test = function(evt) {
|
Chosen.prototype.blur_test = function(evt) {
|
||||||
|
|
|
@ -129,12 +129,14 @@ class Chosen
|
||||||
mouse_leave: -> @mouse_on_container = false
|
mouse_leave: -> @mouse_on_container = false
|
||||||
|
|
||||||
input_focus: (evt) ->
|
input_focus: (evt) ->
|
||||||
setTimeout this.container_click.bind(this), 50 unless @active_field
|
binding = this
|
||||||
|
setTimeout (-> binding.container_click()), 50 unless @active_field
|
||||||
|
|
||||||
input_blur: (evt) ->
|
input_blur: (evt) ->
|
||||||
if not @mouse_on_container
|
if not @mouse_on_container
|
||||||
@active_field = false
|
@active_field = false
|
||||||
setTimeout this.blur_test.bind(this), 100
|
binding = this
|
||||||
|
setTimeout (-> binding.blur_test()), 100
|
||||||
|
|
||||||
blur_test: (evt) ->
|
blur_test: (evt) ->
|
||||||
this.close_field() if not @active_field and @container.hasClass "chzn-container-active"
|
this.close_field() if not @active_field and @container.hasClass "chzn-container-active"
|
||||||
|
|
Loading…
Reference in a new issue