Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2019-03-06 16:06:48 +03:00
parent e896cc0640
commit 2479cde562
2 changed files with 21 additions and 3 deletions

View File

@ -134,6 +134,7 @@ requirejs([
make('aaa')
make.nest('D', browser.Browser(function(make){
make('a')
make('---')
make('b')
}))
make('bbb')

View File

@ -201,7 +201,10 @@ var makeEventMethod = function(event, handler){
// XXX can we generate this in one spot???
// ...currently it is generated here and in .trigger(..)
var evt = {
name: event,
name: event,
// XXX
//stopPropagation: function(){
//},
}
// XXX handle more of the API???
@ -253,6 +256,7 @@ var BaseBrowserPrototype = {
noDuplicateValues: false,
},
// XXX needed to bubble the events up...
parent: null,
//
@ -510,6 +514,10 @@ var BaseBrowserPrototype = {
parent: this,
})
// XXX do we need both this and the above ref???
item.sublist instanceof Browser
&& (item.sublist.parent = this)
// store the item...
items.push(item)
new_index[key] = item
@ -779,20 +787,29 @@ var BaseBrowserPrototype = {
},
trigger: function(evt, ...args){
var that = this
var stopPropagation = false
var evt = typeof(evt) == typeof('str') ?
// XXX construct this in one place...
// ...currently it is constructed here and in makeEventMethod(..)
{
name: evt,
stopPropagation: function(){
stopPropagation = true },
}
: evt
// call the main set of handlers...
;((this.__event_handlers || {})[evt.name] || [])
// prevent .off(..) from affecting the call loop...
.slice()
.forEach(function(handler){
handler.call(that, evt, ...args) })
// XXX should we trigger the parent event????
//this.parent.trigger(evt, ...args)
// trigger the parent's event...
!stopPropagation
&& this.parent
&& this.parent.trigger(evt, ...args)
return this
},