繁体   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