0

我有一个列表,我想运行一个 switch 语句来确定单击的元素是否具有某个类 - 然后隐藏所有其他元素。

这就是我所拥有的,但 switch 语句不会通过单击获取变量集。

<ul>
  <li class="all"><a>Show all</a></li>
  <li class="design"><a>Design</a></li>
  <li class="dev"><a>Development</a></li>
  <li class="ux"><a>UX</a></li>
  <li class="print">Print</a></li>
</ul>

和:

$(function() {
$('a').click(function() {
    var wrkType = $(this).parent().attr('class')

    //alert(day) // alerts !
    });
});

 switch (wrkType)
{
case 'dev':
  alert('yahmon!')
  if (!$('li').hasClass('dev')) { $('li').fadeOut(300); }
  break;
case 'all':
  //All things on
  break;
} 

我怎样才能做到这一点?

4

2 回答 2

1

如果您正在访问其他函数中的变量,请将您的workType变量设为全局变量。现在它是单击回调函数的本地变量。

如果您想在同一个点击事件回调中运行,请将您的切换代码移动到回调函数内部。

像这样

$('a').click(function() {
   var wrkType = $(this).parent().attr('class')
   switch(wrkType ){
      case 'dev':
   --  

 --  
   }
});
于 2013-08-30T17:51:43.890 回答
1

这应该工作

$(function() {
   $('a').on('click', function() {
    var wrkType = $(this).parent().attr('class')
     WorkType(wrkType);
    //alert(day) // alerts !
    });
});

 function WorkType (wrkType) {
 switch (wrkType)
 {
    case 'dev':
      alert('yahmon!')
      if (!$('li').hasClass('dev')) { $('li').fadeOut(300); }
    break;
    case 'all':
      //All things on
    break;
}
}

我建议使用on而不是click.

于 2013-08-30T17:55:16.830 回答