Use coffeesript's built-in function binding on setTimeouts

abstract-chosen
Patrick Filler 2011-07-20 11:06:59 -04:00
parent 1ddf68baf0
commit d3b14656ea
2 changed files with 8 additions and 14 deletions

View File

@ -152,22 +152,18 @@
return this.mouse_on_container = false;
};
Chosen.prototype.input_focus = function(evt) {
var binding;
binding = this;
if (!this.active_field) {
return setTimeout((function() {
return binding.container_click();
}), 50);
return setTimeout((__bind(function() {
return this.container_click();
}, this)), 50);
}
};
Chosen.prototype.input_blur = function(evt) {
var binding;
if (!this.mouse_on_container) {
this.active_field = false;
binding = this;
return setTimeout((function() {
return binding.blur_test();
}), 100);
return setTimeout((__bind(function() {
return this.blur_test();
}, this)), 100);
}
};
Chosen.prototype.blur_test = function(evt) {

View File

@ -129,14 +129,12 @@ class Chosen
mouse_leave: -> @mouse_on_container = false
input_focus: (evt) ->
binding = this
setTimeout (-> binding.container_click()), 50 unless @active_field
setTimeout (=> this.container_click()), 50 unless @active_field
input_blur: (evt) ->
if not @mouse_on_container
@active_field = false
binding = this
setTimeout (-> binding.blur_test()), 100
setTimeout (=> this.blur_test()), 100
blur_test: (evt) ->
this.close_field() if not @active_field and @container.hasClass "chzn-container-active"