JQuery隐藏()行为

JQuery隐藏()行为,jquery,Jquery,我正在使用Firefox和JQuery: 以下代码短暂隐藏了内容,但随后内容再次出现: $("#calorielink").click(function() { $("#A").hide(); $("#B").hide(); }); 以下代码正确隐藏了内容: $("#calorielink").click(function() { $("#A").hide();

我正在使用Firefox和JQuery:

以下代码短暂隐藏了内容,但随后内容再次出现:

$("#calorielink").click(function() {
                $("#A").hide();
                $("#B").hide();
            });
以下代码正确隐藏了内容:

$("#calorielink").click(function() {
                $("#A").hide();
                $("#B").hide();
                return false;
            });

为什么return语句会产生影响?

Returning
false
会阻止浏览器加载使用
元素的
href
属性设置的url


我认为,元素链接到页面本身,因此会重新加载页面。

返回
false
会阻止浏览器加载使用
元素的
href
属性设置的url


我认为,元素链接到页面本身,因此会重新加载页面。

return false
在事件处理程序中为您执行以下操作:

  • 这是事件的默认操作。假设
    #calorieLink
    a
    ,这意味着用户不会被引导到新页面
  • 停止事件的传播。该事件不会使DOM冒泡。换句话说,如果将事件处理程序附加到该元素的“上游”元素,则不会通知它们事件
  • 立即从回调函数返回
通常,您只需要第一个(您只需要阻止默认操作):

我通常建议不要在事件处理程序中使用
returnfalse
。考虑一下您希望在事件处理程序中发生什么,即使您确实需要
return false
完成这两项任务,编写以下代码也会更有表现力:

event.preventDefault();
event.stopPropagation();
关于
return false
实际执行的操作的详细信息


不包括
return false
或停止事件默认操作(
event.preventDefault()
)将导致代码运行,事件的默认行为也将发生。这可能就是您看到代码快速运行,然后效果消失的原因。

return false在事件处理程序中为您执行以下操作:

  • 这是事件的默认操作。假设
    #calorieLink
    a
    ,这意味着用户不会被引导到新页面
  • 停止事件的传播。该事件不会使DOM冒泡。换句话说,如果将事件处理程序附加到该元素的“上游”元素,则不会通知它们事件
  • 立即从回调函数返回
通常,您只需要第一个(您只需要阻止默认操作):

我通常建议不要在事件处理程序中使用
returnfalse
。考虑一下您希望在事件处理程序中发生什么,即使您确实需要
return false
完成这两项任务,编写以下代码也会更有表现力:

event.preventDefault();
event.stopPropagation();
关于
return false
实际执行的操作的详细信息


不包括
return false
或停止事件默认操作(
event.preventDefault()
)将导致代码运行,事件的默认行为也将发生。这可能就是你看到代码快速运行,然后效果消失的原因。

@sdadas:没问题!很高兴能帮忙。@sdadas:没问题!很乐意帮忙。