簡體   English   中英

為什么我的Javascript switch語句不起作用?

[英]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();

編輯:小提琴http://jsfiddle.net/9aHvx/7/

使用語法:

$('.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;
});

jsFiddle鏈接

.window div不在li元素內,因此您不必傳遞li變量作為參數:

$('.window').hide();

http://jsfiddle.net/9aHvx/13/

使用$('.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM