gpt4 book ai didi

javascript - 在 jQuery 中调用方法

转载 作者:行者123 更新时间:2023-11-27 22:44:42 28 4
gpt4 key购买 nike

我有这个方法:

checkFancyBox=function(){
ldValue=LD(user,'admin')+LD(pass,'admin');
if(ldValue<2){
myHashMap[pass.concat(user)]=ldValue;
$.fancybox({
content: "<span style='color:black'>Wrong username or password. </span>",
showCloseButton: true,
transitionIn: "elastic"
});
$('#funny').show("");
return false;
}
};

当它被放置在 :

$(document).ready(function() { 
//...
checkFancyBox();
//...
checkFancyBox=function(){ /*...*/ };
};

它崩溃并立即刷新,

当它被放置在 $(document).ready 之外时......它正在工作,

但由于某些原因它没有显示 fancybox 的内容,

再次,立即刷新。

我应该把它放在哪里以及如何让它显示内容并仅在

fancybox 上的“关闭”按钮被按下了吗?

谢谢!

最佳答案

这是一个提升问题。

checkFancyBox=function(){...};
};

声明提升到函数的顶部,但不是初始化。所以当你有

$(document).ready(function() { ... 
//checkFancyBox declaration is hoisted to here, and is undefined
checkFancyBox(); //calling an undefined variable is an error

checkFancyBox = function(){...}; //now checkFancyBox is initialized, but too late to prevent the error
};

将此声明放在 document.ready 处理程序的外部 会导致此声明和初始化在处理程序运行之前发生,因此 checkFancyBox 具有一个值,并且可以被调用。如果您选择坚持原来的函数声明方式,请确保在其前面放置一个 var

var checkFancyBox = function(){...};

但是请注意,函数可以像这样简单地声明

function checkFancyBox(){
//...
}

另一方面,如果您希望该函数在您的 document.ready 处理程序中是本地的,那么只需将声明移动到该处理程序的顶部:

$(document).ready(function() { ... 
var checkFancyBox = function(){...};
//checkFancyBox declaration and initialization are both accomplished,
//and the function is safe to call

checkFancyBox();
};

关于javascript - 在 jQuery 中调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369693/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com