您好,我想了解函数的返回值。我有两个功能一个工作,第二个不工作。我想知道为什么第二个功能不起作用。 http://jsfiddle.net/95vXQ/5/
这是第二个不起作用的功能。我想为什么它不会改变isVisible值
答案 0 :(得分:2)
第二个屏幕截图不起作用,因为在点击功能中定义了isVisible
。完成该功能后,isVisible
将被取消设置。再次调用click函数时,isVisible
将重置,并且其值将返回true。这称为变量范围。
此问题与返回值无关。要返回一个值,您必须使用return [varname]
,这对点击功能无效。
答案 1 :(得分:2)
可变范围问题。查找更多信息here。为了简单起见,在函数外部定义的任何变量都是未定义的。
第二个屏幕截图中的功能失败,因为每次有点击事件时都会执行该功能,即使你重置isVisible值,它也不会被带到下一个调用,因为你再次使用true初始化isVisible设定值。
答案 2 :(得分:2)
jQuery点击功能在this link中有清楚的解释。 click函数可用于在单击对象时触发单个或一系列jQuery事件。函数中声明的变量仅在该单击函数中有效。无法在单击函数中返回值,只能触发事件。
答案 3 :(得分:2)
你的第二个例子没有按预期工作,因为你在函数内部重新赋值为isVisible
;并注意isVisible
的范围仅在函数内部,如果您在单击函数内声明它。
如果您只是想知道上述示例的工作,并且对在函数外声明变量不感兴趣,那么try this jsfiddle。
如果您想要显示/隐藏功能,请try this toggle jsfiddle。代码如下。
$(function(){
$("#btnShow").toggle(
function(){
$(this).val("Show");
$("#divContent").hide();
},
function(){
$(this).val("Hide");
$("#divContent").show();
}
);
});
答案 4 :(得分:0)
非常简单.. Amit。
在你的第一种情况下,它是一个全局变量,所以,一旦隐藏后它被更新为False,它会再次显示div。
还不清楚?