我有一个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/(点击Min)
它应该隐藏.window
div,但它不会:(
答案 0 :(得分:3)
此行$('.window', li).hide();
错误。如果你想定位.window和li,你需要像css那样编写它:
$('.window, li').hide();
答案 1 :(得分:2)
使用语法:
$('.window', li).hide();
表示从节点window
开始搜索类li
的元素。 1}}不是后代的窗口类的对象将不匹配。
在你的标记中,情况确实如此。你应该一起跳过第二个参数。或者,您可以重新排列标记(但这可能不是您想要的)。
Go for:
li
编辑:如果您只想隐藏窗口元素,那就是这样。如果你想隐藏li的,那么goo for shanethehat的解决方案。
答案 2 :(得分:1)
您的选择器已关闭
$('.handles a').click(function() {
var li = $(this).parent();
var x = $(li).data('handle');
switch (x) {
case 'minimize':
alert(x);
$('.window').hide();
break;
}
return false;
});
答案 3 :(得分:1)
.window
div不在li
元素内,因此您不必将li
变量作为参数传递:
$('.window').hide();
答案 4 :(得分:1)
请改用$('.window').hide();
,因为<li>
内没有<div class="window">
答案 5 :(得分:0)
我刚做了一个主要的嘘声! :P
$('.handles a').click(function() {
var snippet = $(this).parents('.snippet');
switch($(this).parent().data('handle')) {
case 'minimize':
$('.window', snippet).hide();
break;
}
return false;
});
全部谢谢:)