有没有办法提取jQuery中使用的变量的值,以便我们可以在JavaScript函数中使用它
<script>
var val;
$(document).ready(function() {$('.nav a').click(function(event)
{event.preventDefault();
val=$(this).index();
if(val==0){
$('#hide_main').hide();
$('.main_BSNS').animate({opacity:"show",height:"400px"},'slow')
}//if val==0 ends here
else if(val==1){
$('#hide_main').hide();
$('.main_ACTNT').animate({opacity:"show",height:"400px"},'slow')
}
else if(val==2){
$('#hide_main').hide();
$('.main_devp').animate({opacity:"show",height:"400px"},'slow')
}
});
});
function getCookie(c_name){
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function checkCookie()
{
var username=getCookie("BSNS");
if (username!=null && username!="")
{
$('#hide_main').hide();
$('.main_BSNS').animate({opacity:"show",height:"400px"},'slow')
}
else
{
alert(val);
if (username!=null && username!="")
{
setCookie("BSNS",username,365);
$('#hide_main').hide();
$('.main_BSNS').animate({opacity:"show",height:"400px"},'slow')
}
}
}
</script>
现在我希望调用checkCookie()函数,但是警告总是显示未定义的值(正如许多用户预测的那样)但是我无法找到解决方案并写下这些cookie ...(最后我成功至少把我的代码放在这个网站上:-))
答案 0 :(得分:2)
尝试修复myFunction后缺少括号导致的语法错误。这将有效:
<input type="button" id="mybutton" value="click me" />
<script>
var x;
$(document).ready(function(e) {
x=5;
});
function myFunction(){
alert(x);
}
$('#mybutton').click(myFunction);
</script>
答案 1 :(得分:1)
这样的事情应该有效,x
只需要是一个全局变量:
<script>
var x;
$(document).ready(function(e){
x=5;
});
function myFunction(){
alert(x);
}
myFunction();
</script>
答案 2 :(得分:1)
jQuery是Javascript,它只是Javascript变量的范围问题。
使变量成为全局变量,然后您也可以从函数中访问它:
var x;
$(document).ready(function(e){
x = 5;
});
function myFunction() {
alert(x);
}
但是,ready
事件在加载了entore文档时运行,因此该值仅在事件处理程序运行后才可用。如果在此之前调用该函数,则变量的值仍未定义。
答案 3 :(得分:0)
这只是javascript范围规则。函数内部定义的x在外部不可用。您需要将该值传递给myFunction,或者您需要在myFunction可以看到的范围内定义x。
答案 4 :(得分:0)
多种方式:
var x; // may be initiated with a value
$(document).ready(function(e){
x = 5;
});
或
$(document).ready(function(e){
window.x = 5;
});
但是,在值在变量中之前必须触发就绪事件。如果您直接在代码中提出要求,则会获得undefined
。
我建议在准备好的活动中做所有。然后你也可以访问你的变量。
var x;
$(document).ready(function(e){
x=5;
myFunction(); // call it here or later
});
function myFunction(){
alert(x);
}