Rivsen's Blog

这里是我的博客,使用github pages创建。

jquery 获取使用namespace绑定的事件

jquery的event前段时间了解了下,发现namespace方式绑定的自定义事件超级好用,支持单个触发或者根据事件名称触发一系列绑定在这个事件上的namespace里的handler,前提是,如何判断绑定事件存在,并触发它。

经过在Google搜索,在stackoverflow上找到了骨头!详细回答请 戳这里

简单讲,就是需要结合jquery 1.8以上版本(1.8 release log),利用 _data() 方法获取到event列表,并进行进一步的处理。

下面是写的一段测试代码:

// add a check string start with something
String.prototype.startWith = function(needle){
    return(this.indexOf(needle) == 0);
}

// set a app object
var app = $('#page');

// add a custom event handler
app.on('slider_preload.before', function(event){
        console.log('before slider pre-load event');
        });

// add another custom event handler
app.on('common.init', function(event){
        console.log('init event handler in common events');
        });

// get events list
var app_events = $._data( app.get(0), 'events' );

// trigger common init event
if( undefined !== app_events && undefined !== app_events.common ){
    app.trigger('common.init');
}

if( undefined !== app_events && undefined !== app_events.slider_preload ) {
    app.trigger('slider_preload');
}