[英]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.