2012-11-14 71 views
0

的参数值的方式。如果我有:jQuery的获取自定义事件

blockRoutes = function (value) { 
     $('body').trigger('cantLeaveRoute', { val: value }); 
     return value; 
} 

除样结合的回调:

this.bind('cantLeaveRoute', function() { 
     this.params['val'] === true ? nav.disableHeader() : nav.enableHeader()    
}); 

哪有我直接(不上面显示的绑定)读取当前参数的值?

沿下方的语法错误的东西线:你在触发设置

$('body').data('events')['cantLeaveRoute'].val 
+1

的一部分,你是什么意思?你为什么不想使用上面显示的绑定?除了事件处理程序以外,“当前”值不会被存储在任何位置。数据存储在事件中,并且是动态的,只有在触发时才可访问。当你调用'.trigger'然后'.bind'事件访问该事件时,事件的数据不会存储在某处。从技术上讲,你可以将任何东西传递给'trigger',就像不同的数据类型一样,'bind'可以基于这个来检查。 – Ian

回答

2

的参数是事件

this.bind('cantLeaveRoute', function (event) { 
var value = event.data.val; 
value === true ? nav.disableHeader() : nav.enableHeader()    
}); 
+0

这不正是我以上写作的方法即时通讯之后没有? – XGreen

+2

从技术上讲,这将是'event.data.val' – Ian

+0

抱歉修好了。 – toxicate20