publisher closes when clicked anywhere outside its division after opening

fixed app.publisher undefined error

app view removed and click event binder added in the publisher view initializer.

removed unwanted console log

attempted to fix this.el undefined error
This commit is contained in:
Sri Vishnu Totakura 2013-07-06 14:45:33 +05:30 committed by Jonne Haß
parent 77c94bf4c2
commit f5c8ebcb90
2 changed files with 17 additions and 1 deletions

View file

@ -20,7 +20,7 @@ var app = {
views: {},
pages: {},
forms: {},
user: function(userAttrs) {
if(userAttrs) { return this._user = new app.models.User(userAttrs) }
return this._user || false

View file

@ -65,6 +65,15 @@ app.views.Publisher = Backbone.View.extend(_.extend(
// textchange event won't be called in Backbone...
this.el_input.bind('textchange', $.noop);
var _this = this
$('body').on('click', function(event){
// if the click event is happened outside the publisher view, then try to close the box
if( _this.el && $(event.target).closest('#publisher').attr('id') != _this.el.id){
_this.tryClose()
}
});
return this;
},
@ -249,6 +258,13 @@ app.views.Publisher = Backbone.View.extend(_.extend(
return this;
},
tryClose : function(){
// if it is not submittable, close it.
if( !this._submittable() ){
this.close()
}
},
open : function() {
// visually 'open' the publisher
this.$el.removeClass('closed');