2012-01-09 165 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

相關問題