使用jQuery检查可见性(调试)
Checking visibility with jQuery (debug)
我关注了一些帖子,以便能够检查div:的可见性
HTML:
<div class="language" onclick="Show_Div()">
<div class="menu-langues">
//my code here
</div>
</div>
脚本:
function Show_Div() {
$Div_id = "menu-langues";
if ( $(Div_id).is(':hidden')) {
($Div_id).show();
}
else {
($Div_id).hide();
}
}
控制台:
Uncaught ReferenceError: Div_id is not defined
我看不出我做错了什么,有人能帮我吗?
谢谢!:)
您定义了一个变量,然后在if语句的代码中使用了另一个变量。
if ( $(Div_id).is(':hidden')) {
应该是
if ( $($Div_id).is(':hidden')) {
这应该可以解决错误。然而,为了获得工作代码,我建议这样写:
function Show_Div() {
$Div_id = $(".menu-langues");
if ( $Div_id.is(':hidden')) {
$Div_id.show();
}
else {
$Div_id.hide();
}
}
通过这种方式,您可以将变量$Div_id
转换为jQuery对象,在该对象上可以执行函数。通过将其保存在变量中,代码不必一遍又一遍地查找元素。
@Rory McCrossan
所说,只需使用toggle
。
代码:
$('.language').click(function(){
// Show if hidden and hide if visible
$('.menu-langues').toggle();
});
Html(无内联处理程序):
<div class="language">
<div class="menu-langues">
//my code here
</div>
</div>
如果页面上有多个相同按钮,则可以使用范围选择器(第二个参数定义范围)来确定选择的目标:
$('.language').click(function(){
// Show if hidden and hide if visible
$('.menu-langues', this).toggle();
});
一些错误:菜单语言是一个类而不是ID,因此,您可以使用jQuery将其引用为:$('.menu-langues')
如果您需要引用ID,请使用jQuery:$('#menu-langues')
因此,使用".
"引用类,使用"#
"引用ID。
您使用了$Div_id = "menu-langues";
。。。我把它改成:Div_id = "menu-langues";
你也写$(Div_id).show();
,我固定为:$(Div_id).show();
剪切的代码修复并工作:
function Show_Div() {
var Div_id = ".menu-langues"; // is a class, not ID
if ( $(Div_id).is(':hidden')) {
$(Div_id).show();
}
else {
$(Div_id).hide();
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="language" onclick="Show_Div()">
<div class="menu-langues">
test of visibility
</div>
</div>
<button onClick="javascript:Show_Div();">Click</button>
您的变量名是$Div_id
,而不是Div_id
。此外,您正在尝试使用类名进行选择,因此需要在选择器中预先添加一个.
。
你的代码应该看起来像:
function Show_Div() {
$Div_id = ".menu-langues";
if ( $($Div_id).is(':hidden')) {
$($Div_id).show();
}
else {
$($Div_id).hide();
}
}
代码应该更像:
function Show_Div() {
var $Div_id = "menu-langues";
if ( $($Div_id).is(':hidden')) {
$($Div_id).show();
} else {
$($Div_id).hide();
}
}
另外值得一提的是,JavaScript变量名和函数名的约定是camelCase。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- jQuery css可见性在load方法中不起作用
- 页面可见性API实际上支持操作系统屏幕锁定吗
- 有没有一种方法可以从隐藏的可见性(CSS,JS)中获得淡入效果
- JavaScript可见性不起作用('隐藏'起作用,'可见'不起作用)
- 从内部回调的可见性
- Openlayers 3为了可见性而绑定到Vector层的复选框没有任何作用
- 在另一个下拉列表中的选择上切换下拉列表中选项的可见性
- 如何禁用mouseout可见性=“;隐藏的“;对小于768px的介质的影响
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- 将元素的可见性绑定到另一个元素
- 使用 Javascript 将 HTML 页面中的默认可见性从可见更改为隐藏
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- 在 jQuery 手风琴样式菜单中切换子项可见性
- CSS 中定义的可见性值未显示在 Javascript 中
- jquery切换可见性
- 如何使用 asp.net 中的另一个下拉列表更改下拉列表选定的索引和可见性
- 使用javascript的图像可见性
- 如何在 js 中捕获 win8 Metro 应用的可见性更改/应用后台事件
- 使用jQuery检查可见性(调试)