Javascript 直接在init之后调用函数

Javascript 直接在init之后调用函数,javascript,jquery,function,call,Javascript,Jquery,Function,Call,我有一个函数,例如: $(window).scroll(function(e){ // my stuff }); 有没有办法在初始化之后调用函数directy? 我知道在init之后直接调用函数的语法: (function(){ // this function will be called directly })(); 但是我如何调整代码以达到同样的效果(在scroll函数初始化后直接调用一次)?您可以立即调用事件处理程序 $(window).scroll(function(e){

我有一个函数,例如:

$(window).scroll(function(e){
 // my stuff
});
有没有办法在初始化之后调用函数directy? 我知道在init之后直接调用函数的语法:

(function(){
 // this function will be called directly
})();
但是我如何调整代码以达到同样的效果(在scroll函数初始化后直接调用一次)?

您可以立即调用事件处理程序

$(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

这有帮助吗?

谢谢,这很有帮助!在这个变体中被排除,这是真正的滚动?这是否也会触发其他滚动事件?如果窗口上有其他滚动事件,它会!解决这个问题的办法是给事件命名,我会把它添加到答案中。酷!我试试看。我不知道这个名称空间方法这将适用于所有其他.on()事件,对吗(调整大小、单击等)?不,对不起,我知道这个解决方案,但它很尴尬,因为所有东西都必须外包给另一个函数或另一个函数?不明白。你能详细说明一下吗?你必须把每一个代码放到另一个函数中(在你的例子“myHandler”中)。太尴尬了!我认为adeneo的解决方案更好。我的两分钱-如果在作用域中不使用或不需要该函数,那么最好使用匿名。命名函数有助于确定范围和更好地调试。我不太清楚什么是尴尬的,反正是你的选择。