後直接我有一個功能,例如:調用函數初始化
$(window).scroll(function(e){
// my stuff
});
有沒有辦法來調用init後的功能directy? 我知道這句法到init後直接調用一個函數:
(function(){
// this function will be called directly
})();
,但我怎麼能調整我的代碼做同樣的(調用滾動功能已經初始化後直接一次)?
後直接我有一個功能,例如:調用函數初始化
$(window).scroll(function(e){
// my stuff
});
有沒有辦法來調用init後的功能directy? 我知道這句法到init後直接調用一個函數:
(function(){
// this function will be called directly
})();
,但我怎麼能調整我的代碼做同樣的(調用滾動功能已經初始化後直接一次)?
可以trigger()
事件處理程序後立即
$(window).scroll(function(e){
// my stuff
}).trigger('scroll');
編輯:
%的意見,以確保沒有其他的滾動事件處理程序被觸發,你可以命名空間中的事件
$(window).on('scroll.custom', function(e) {
// my stuff
}).trigger('scroll.custom');
你不能簡單地命名該功能並立即調用該功能 -
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
這有幫助嗎?
沒有抱歉,我知道解決方案,但它很笨拙,因爲一切都必須外包給另一個功能 – user3292653
另一個功能?不要讓你。你能詳細說明嗎? – aravind
你必須把每個代碼放到另一個函數中(在你的例子「myHandler」中)。這很尷尬!從adeneo的解決方案是更好,我認爲 – user3292653
謝謝,這很有幫助!在這個變體中被排除,這真的是滾動? – user3292653
這是否也會觸發其他滾動事件? – user3292653
如果窗口上有其他滾動事件,是的!解決這個問題的方式是命名事件,我將它添加到答案中。 – adeneo