我可以注册/触发我的自定义事件吗?
问题描述:
可以说,我想触发一个自定义事件,像:我可以注册/触发我的自定义事件吗?
var foo = 5;
if(foo == 5){
event(window,'fooIsFive');
}
然后
$(window).live('fooIsfive',function(){
alert('hey! foo is five!');
});
(请原谅我那可怜的想象现在。)
这可能吗?如果不是,是否可能有类似的方法?
答
你可以试试这个:
$(window).on('fooIsFive', function() { // on = jQ1.7, use bind for other versions
alert('hey! foo is five!');
});
var foo = 5;
if (foo == 5) {
$(window).trigger('fooIsFive');
}
答
是你可以:
$(window).bind('eventName',function(e,a,b){
console.log(a,b);
});
$(window).triggerHandler('eventName',['arg1','arg2']);
+0
绑定也在jq1.7中被删除 – 2012-01-09 12:20:01
+0
我不认为你需要事件委托来定制事件,特别是在窗口上,但是,你可以使用所有'on'而不是'bind'清楚*看到在这种情况下的改进。 – 2012-01-09 14:31:15
答
使用Backbone.js的 - http://documentcloud.github.com/backbone/
对象事件是backbone.js的核心。你可以把你的Js应用程序架构带到一个全新的水平。
太棒了!它适合我所有的要求! http://jsfiddle.net/Mj62d/2/谢谢! – 2012-01-09 12:55:40