2012-01-09 81 views
2

可以说,我想触发一个自定义事件,像:我可以注册/触发我的自定义事件吗?

var foo = 5; 

if(foo == 5){ 
    event(window,'fooIsFive'); 
} 

然后

$(window).live('fooIsfive',function(){ 
    alert('hey! foo is five!'); 
}); 

(请原谅我那可怜的想象现在。)

这可能吗?如果不是,是否可能有类似的方法?

回答

3

你可以试试这个:

$(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'); 
} 

Example fiddle

+0

太棒了!它适合我所有的要求! http://jsfiddle.net/Mj62d/2/谢谢! – 2012-01-09 12:55:40

0

是你可以:

$(window).bind('eventName',function(e,a,b){ 
    console.log(a,b); 
}); 
$(window).triggerHandler('eventName',['arg1','arg2']); 

这里有一个演示:http://jsfiddle.net/gion_13/5TrH9/

+0

绑定也在jq1.7中被删除 – 2012-01-09 12:20:01

+0

我不认为你需要事件委托来定制事件,特别是在窗口上,但是,你可以使用所有'on'而不是'bind'清楚*看到在这种情况下的改进。 – 2012-01-09 14:31:15

相关问题