1

有谁知道我可以用来在 javascript 对象图中实现事件和事件冒泡而不通过 DOM 的库或模式?

简而言之,我有一个包含其他类实例的类的实例,我想从子类中触发事件,这些事件可以使图形/链冒泡。

有什么建议么?

4

1 回答 1

0

bob.js 框架公开了您可以使用的事件机制。作为事件的对象,或者要求 bob.js 在您的对象上创建函数。这是第二种方法,因为它更易于阅读(请参阅下面有关冒泡的说明):

var DataListener = function() { 
    var fire = bob.event.namedEvent(this, 'received'); 
    this.start = function(count) { 
        for (var i = 0; i < count; i++) { 
            fire(i + 1); 
        } 
    }; 
}; 
var listener = new DataListener(); 
listener.add_received(function(data) { 
    console.log('data received: ' + data); 
}); 
listener.start(5); 
// Output: 
// data received: 1 
// data received: 2 
// data received: 3 
// data received: 4 
// data received: 5

至于冒泡:bob.js 不支持冒泡(至少目前)。此外,如果在父级上定义的事件与在子级上定义的事件相似,则冒泡是可能的(对于 Html DOM 元素是这种情况,但对于非 DOM 对象并非总是如此)。但是,作为一种解决方法,您可以让子事件侦听器在父对象上触发事件 - 效果类似于冒泡。

于 2013-04-06T12:03:46.743 回答