2016-07-18 16 views
0

何らかの理由で私の機能によってコンソールで未定義のエラーが発生します。どうしてこれなの? if文とelse文は機能には関係ありません。唯一の問題は、switch文で明示的に定義されているにもかかわらず、 "i"が定義されていないことです。Switch Statementで定義された変数は、残りの機能では定義されていません

$('#nav-em-search, #nav-un-search, #nav-db-search').click(function() { 
    switch (this) { 
     case '#nav-em-search': 
      var i = document.getElementById('em-search'); 
      break; 
     case '#nav-un-search': 
      var i = document.getElementById('un-search'); 
      break; 
     case '#nav-db-search': 
      var i = document.getElementById('db-search'); 
      break; 
    } 
    if (!$('.searchbox').not(i).css('left','-60' + '%')) { 
     $('.searchbox').not(i).animate({left:'-60' + '%'},500); 
     setTimeout("$(this).animate({left:'25' + '%'},500)",500); 
    } else { 
     $(i).animate({left:'25' + '%'},500); 
    } 
}); 
+0

変数 'i'を記録して、NULLでないことを確認してください。 –

答えて

0

thisクリックされた要素ではなく、要素のIDに設定されています。
ケースの前にthis.idをオンにして#を削除しても問題ありません。

switch (this.id) { 
    case 'nav-em-search': 
     var i = document.getElementById('em-search'); 
     break; 
    case 'nav-un-search': 
     var i = document.getElementById('un-search'); 
     break; 
    case 'nav-db-search': 
     var i = document.getElementById('db-search'); 
     break; 
    } 
+0

ありがとうございました、Amaan。これは解決されました。 – yoimpetr

関連する問題