2015-04-06 80 views
0

我已閱讀jQuery的自定義事件文檔。正當我開始明白,你可以自己觸發的自定義事件,並像一個鏈接或類似點擊窗口自己的標準事件的元素,滾動或調整....jquery自定義事件混淆

我是在我從unveil.js閱讀代碼混淆 在底部有如下代碼:

$w.on("scroll.unveil resize.unveil lookup.unveil", unveil); 

什麼是這些事件做的和他們在哪裏設置/觸發? 什麼是lookup.unveil上的「查找」事件。

回答

1

這些都是namespaced jQuery events

在jQuery的事件可以被命名空間,使他們獨特和更容易使用。
一般來說你,如果你想從一個元素刪除事件和你做

$('.element').off('click', fn); 

你會從所有刪除事件添加一個click事件這樣

$('.element').on('click', fn); 

但什麼元素,所以你可以命名空間中的事件,而不是

$('.element').on('click.custom', fn); 

的名稱並不重要,它仍然是一個click事件,但現在可以重新移動,而不會影響其他元素也有click事件做

$('.element').off('click.custom', fn); 

觸發此類事件的選擇匹配,一個只想做

$('.element').trigger('click.custom'); 

,它也將通過一個常規的點擊觸發,就像任何點擊處理程序一樣。

在jQuery的一個還可以自定義事件,您可能知道,如果你閱讀Custom Events docs,並在.unveil只是該插件的自定義命名空間是因爲這樣做

$('.elements').on('lookup.unveil', fn); 

一樣容易。該事件可以在適當的時候通過做出觸發

$('.elements').trigger('lookup.unveil'); 

因爲它不是本機事件,所以它不會被其他事件觸發。