2014-03-30 155 views
2

後直接我有一個功能,例如:調用函數初始化

$(window).scroll(function(e){ 
// my stuff 
}); 

有沒有辦法來調用init後的功能directy? 我知道這句法到init後直接調用一個函數:

(function(){ 
// this function will be called directly 
})(); 

,但我怎麼能調整我的代碼做同樣的(調用滾動功能已經初始化後直接一次)?

回答

5

可以trigger()事件處理程序後立即

$(window).scroll(function(e){ 
// my stuff 
}).trigger('scroll'); 

編輯:

%的意見,以確保沒有其他的滾動事件處理程序被觸發,你可以命名空間中的事件

$(window).on('scroll.custom', function(e) { 
// my stuff 
}).trigger('scroll.custom'); 
+0

謝謝,這很有幫助!在這個變體中被排除,這真的是滾動? – user3292653

+0

這是否也會觸發其他滾動事件? – user3292653

+0

如果窗口上有其他滾動事件,是的!解決這個問題的方式是命名事件,我將它添加到答案中。 – adeneo

0

你不能簡單地命名該功能並立即調用該功能 -

function myHandler(e){ 
// your stuff 
}; 
// add handler to event 
$(window).scroll(myHandler); 
// call first time 
myHandler(); 
// Pass necessary params as you need 
// Will not trigger any other event handlers 

這有幫助嗎?

+0

沒有抱歉,我知道解決方案,但它很笨拙,因爲一切都必須外包給另一個功能 – user3292653

+0

另一個功能?不要讓你。你能詳細說明嗎? – aravind

+0

你必須把每個代碼放到另一個函數中(在你的例子「myHandler」中)。這很尷尬!從adeneo的解決方案是更好,我認爲 – user3292653