以下代码无效
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; //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>");
}
我是jquery和javascript的新手,这些东西让我感到困惑。有人可以解释为什么它不起作用。如何使用window.onfocus和onblur方法创建带参数的自定义函数。 (工作或不工作的原因对我来说更重要,因为我想理解机制而不是填写语法)
答案 0 :(得分:1)
()(parenthesis)
之后
function-name
将在您为事件分配处理程序时调用/调用该函数。
使用anonymous-function
代替invoking-function
并调用/调用其中的function
。
在第二个(工作)示例中,您将函数定义(函数体)指定为事件处理程序,因此在特定事件之后调用函数。
window.onfocus = function() {
welcome("John Doe");
};
window.onblur = function() {
bye("John Doe");
}
function welcome(name) {
$("p").append("Welcome back " + name + " <br>");
}
function bye(name) {
$("p").append("Good bye " + name + " see you soon <br>");
}
答案 1 :(得分:1)
尝试$(window).focus()
和$(window).blur()
事件:
$(function() {
$(window).focus(function() {
welcome("John Doe");
});
$(window).blur(function() {
bye("John Doe");
});
});
function welcome(name) {
$("p").append("Welcome back John Doe <br>");
}
function bye(name) {
$("p").append("Good bye John Doe see you soon <br>");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<p></p>
答案 2 :(得分:0)
您的代码运行正常。在页面上添加js文件
请查看此链接jsfiddle.net/05c3qfzL/
答案 3 :(得分:0)
这两个代码对我来说都很好。尝试将jQuery代码放在body部分中。