JQuery隐藏()行为
我正在使用Firefox和JQuery: 以下代码短暂隐藏了内容,但随后内容再次出现:JQuery隐藏()行为,jquery,Jquery,我正在使用Firefox和JQuery: 以下代码短暂隐藏了内容,但随后内容再次出现: $("#calorielink").click(function() { $("#A").hide(); $("#B").hide(); }); 以下代码正确隐藏了内容: $("#calorielink").click(function() { $("#A").hide();
$("#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:没问题!很乐意帮忙。