点击使用jquery隐藏功能

时间:2012-08-27 10:55:28

标签: jquery

您好,我想了解函数的返回值。我有两个功能一个工作,第二个不工作。我想知道为什么第二个功能不起作用。 http://jsfiddle.net/95vXQ/5/

enter image description here

这是第二个不起作用的功能。我想为什么它不会改变isVisible值

enter image description here

5 个答案:

答案 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。

  1. 按钮=隐藏; Div内容显示
  2. 点击隐藏;现在IsVisible是真的;它会隐藏;按钮=显示; Div隐藏
  3. 现在,点击显示。 Click处理程序再次执行代码并创建一个变量IsVisible作为新代码并将其设置为true。它隐藏了div(已经隐藏),按钮仍显示Show。
  4. 在你的第一种情况下,它是一个全局变量,所以,一旦隐藏后它被更新为False,它会再次显示div。

    还不清楚?