Javascript 参数不适用于window.onblur和onfocus的函数

Javascript 参数不适用于window.onblur和onfocus的函数,javascript,jquery,function,onblur,onfocus,Javascript,Jquery,Function,Onblur,Onfocus,以下代码不起作用 window.onfocus = welcome("John Doe"); window.onblur = bye("John Doe"); function welcome(name) { $("p").append("Welcome back " +name+ " <br>"); } function bye(name) { $("p").append("Good bye " +name+ " see you soon <br>"

以下代码不起作用

window.onfocus = welcome("John Doe");
window.onblur = bye("John Doe");

function welcome(name) {
    $("p").append("Welcome back " +name+ " <br>");
}

function bye(name) {
    $("p").append("Good bye " +name+ " see you soon <br>");
}
window.onfocus=欢迎(“John Doe”);
window.onblur=再见(“约翰·多伊”);
功能欢迎(姓名){
$(“p”)。追加(“欢迎回来”+name+“
”; } 函数bye(名称){ $(“p”)。附加(“再见”+姓名+“再见”
”; }
然而,我注意到这段代码适用于不带任何参数的自定义函数。请参阅下面的代码。以下代码正在运行:

window.onfocus = welcome; //No Argument here so this code works
window.onblur = bye; //Same here... No argument for the function

function welcome(name) {
    $("p").append("Welcome back John Doe <br>");
}

function bye(name) {
    $("p").append("Good bye John Doe see you soon <br>");
}
window.onfocus=welcome//此处没有参数,因此此代码有效
window.onblur=bye//彼此彼此。。。函数没有参数
功能欢迎(姓名){
$(“p”)。追加(“欢迎回到John Doe
”; } 函数bye(名称){ $(“p”)。附加(“再见,约翰·多伊,再见
”; }
我不熟悉jquery和javascript,这些东西让我很困惑。有人能解释一下为什么它不起作用吗。以及如何使带有参数的自定义函数与window.onfocus和onblur方法一起工作。(对我来说,工作或不工作的原因更为重要,因为我想理解机制,而不是死记硬背语法)

()(括号)
之后的
函数名
将在将处理程序分配给事件时调用函数

使用
匿名函数
而不是
调用函数
,并调用/调用其中的
函数

在第二个(工作)示例中,您将函数定义(函数体)指定为事件处理程序,因此函数将在特定事件之后调用

window.onfocus=function(){
欢迎(“约翰·多伊”);
};
window.onblur=函数(){
再见(“约翰·多伊”);
}
功能欢迎(姓名){
$(“p”)。追加(“欢迎回来”+name+“
”; } 函数bye(名称){ $(“p”)。附加(“再见”+姓名+“再见”
”; }
尝试
$(窗口).focus()
$(窗口).blur()
事件:

$(函数(){
$(窗口).focus(函数(){
欢迎(“约翰·多伊”);
});
$(窗口).blur(函数(){
再见(“约翰·多伊”);
});
});
功能欢迎(姓名){
$(“p”)。追加(“欢迎回到John Doe
”; } 函数bye(名称){ $(“p”)。附加(“再见,约翰·多伊,再见
”; }


您的代码工作正常。在页面上添加JavaScript文件

window.onfocus=欢迎(“John Doe”);
window.onblur=再见(“约翰·多伊”);
功能欢迎(姓名){
$(“p”)。追加(“欢迎回来”+name+“
”; } 函数bye(名称){ $(“p”)。附加(“再见”+姓名+“再见”
”; }


这两个代码对我来说都很好。尝试将jQuery代码放入body部分

但为什么调用函数不起作用呢?为什么只需要匿名函数,但不能按预期工作。(应在模糊或聚焦时执行)。请对此发表评论