[英]Why doesn't my Javascript switch statement work?
我有一个switch语句,我必须忽略一些东西,因为我不明白为什么它不起作用。
$('.handles a').click(function() {
var li = $(this).parent();
switch ($(li).data('handle')) {
case 'minimize':
$('.window', li).hide();
break;
}
return false;
});
还要设置一个小提琴@ http://jsfiddle.net/9aHvx/4/ (单击“最小”)
它应该隐藏.window
div,但不是:(
这行$('.window', li).hide();
是错的。 如果要定位.window和li,则需要像使用CSS那样编写它:
$('.window, li').hide();
使用语法:
$('.window', li).hide();
表示您从节点li
开始使用类window
搜索元素。 窗口类不是li
后代的对象将不匹配。
在您的标记中,情况确实如此。 您应该一起跳过第二个参数。 或者,您可以重新排列标记(但这可能不是您想要的)。
去做:
$('.window').hide();
编辑:这是如果您只想隐藏窗口元素。 如果您也想隐藏li的东西,请使用shanethehat的解决方案。
您的选择器已关闭
$('.handles a').click(function() {
var li = $(this).parent();
var x = $(li).data('handle');
switch (x) {
case 'minimize':
alert(x);
$('.window').hide();
break;
}
return false;
});
.window
div不在li
元素内,因此您不必传递li
变量作为参数:
$('.window').hide();
使用$('.window').hide();
相反,因为<div class="window">
中没有<li>
<div class="window">
抱歉,我浪费了您的时间。
我刚刚做了一个大嘘声! :P
$('.handles a').click(function() {
var snippet = $(this).parents('.snippet');
switch($(this).parent().data('handle')) {
case 'minimize':
$('.window', snippet).hide();
break;
}
return false;
});
谢谢大家:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.