为什么我的开关块(打开$(e.target).attr(“class”))不起作用?

时间:2009-12-17 21:38:26

标签: javascript jquery

我想弄清楚为什么这段代码不起作用..

我想要的只是简单的事件委托来分配一个事件监听器。

它只发出警报,它没有动画。 请告诉我这里有什么问题:

$(document).ready(function() {
  var img = $("img");

$("span").click(function(e){
  var targetClicked = $(e.target).attr('class');
  //the alert works fine
  alert(targetClicked)

switch(targetClicked){
// i deleted the rest of the cases
    case d:img.stop(false,true);
  break;
    case e:img.slideDown().animate({"width":200, height:200, opacity:0.4,});
  break; 
  //nothings works here as well
    case f:alert("hi");
  break;
 }
 });         
});

1 个答案:

答案 0 :(得分:3)

d声明e条件中的switchcase是什么?您现在编写代码的方式,它们被视为变量,而您的代码可能会被“d'未定义”错误搞砸。

如果要打开类名"d""e",则需要将类名称用作字符串:

switch (targetClicked) {
  case "d":
    //...
    break;
  case "e":
    // ...
    break;
}