2017-03-21 115 views
0

我創造了我公司的小應用程序,它的工作原理是一系列的開關。例如,如果某些人進入Hi,他們會將他們帶到hi功能,並且在該功能中有更多的開關。下面是一個例子:jQuery的 - 開關罩到開關罩 - 清除開關案例

var function = firstfunction { 

    $('#INPUTBOX').keypress(function (e) { 
     if (e.which == 13) { 
      switch($('#INPUTBOX').val().toLowerCase()){ 

      case "contact": 
      QuestionFunctionContact(); 
      break; 

      case "additional": 
      case "extra": 
      case "next": 
      MiscFunctionContact(); 
      break; 
      }; 
     } 
    }); 
}; 

var QuestionFunctionContact = function(){ 

    $('#INPUTBOX').keypress(function (e) { 
     if (e.which == 13) { 
      switch($('#INPUTBOX').val().toLowerCase()){ 

      case "address": 
      $('#OUTPUT').val("Here's Our Address"); 
      break; 

      case "email": 
      case "email address": 
      $('#OUTPUT').val("Here's Our Email"); 
      break; 

      case "phone": 
      case "number": 
      $('#OUTPUT').val("Here's Our Phone"); 
      Anotherfunction(); 
      break; 

      case "return": 
      firstfunction(); 
      break; 
      }; 
     } 
    }); 
}; 

這只是一個小例子,其中一些id已被更改。

我的問題是我需要清除開關後,直到再次調用,因爲問題是一旦功能已經運行它是可用的,即使離開開關後(案例等),最重要的是默認情況下也將傳遞數字。 我需要的默認存儲自定義變量,每個這就是爲什麼我不想讓他們到交換機之間傳遞開關。

編輯 -

交換機上的情況下,要麼追加到一個div或者帶你到另一個功能。有大約15-20個功能通過開關互相連接,一些父母有幾個孩子。

當您在INPUTBOX中輸入一個值並按下回車鍵時,它會帶您進入其中一種情況,在這種情況下,您將被帶到另一個具有開關情況的功能或輸出到OUTPUT類(輸出端是一個盒子,其正在被追加爲過回追蹤)

我的下一個目標是有一個「對不起嘗試其中之一」,但它只能在當前交換機上。如果我要給每個交換機設置一個默認值,它會進入下一個,因此它會列出所有以前的案例中的「對不起,請嘗試其中之一」。

希望這解釋了它好一點

+0

你可以創建一個搗鼓這個代碼,以便社會可以在你想了解什麼? –

+0

該應用是在2400行的代碼,我將一個小版本 – Ste

+0

在短 - https://jsfiddle.net/qdu39xtp/3/默認棒意味着沒有運氣1和NO 2 LUCK將被附加到div甚至在一個新的開關 – Ste

回答

0

我說什麼,我覺得你試圖做一個重構和固定的例子。請參閱片段中的評論。

/** 
 
* var function = firstfunction { will not work. 
 
* And, you need to call this function somewhere. I did so in the bottom. 
 
* Also this function must probably pass a value to your QuestionFunctionContact function. 
 
* I did this by providing the value to the function in the contact switch. 
 
*/ 
 
var firstfunction = function() { 
 

 
    $('#INPUTBOX').keypress(function (e) { 
 
     if (e.which == 13) { 
 
     
 
    var value = $('#INPUTBOX').val().toLowerCase(); // my general practice: use a value >=twice? store it to a variable 
 
     
 
      switch(value){ 
 

 
      case "contact": 
 
      QuestionFunctionContact(value); 
 
      break; 
 

 
      case "additional": 
 
      case "extra": 
 
      case "next": 
 
      //MiscFunctionContact(); // dont know what this does... 
 
      break; 
 
      }; 
 
     } 
 
    }); 
 
    
 
}; 
 
/** 
 
* This one was waiting for keypress again. 
 
* Does not make sense since its called by the firstfunction that already used all keyup events. 
 
* Make it receive a value instead of acting on events. 
 
*/ 
 
var QuestionFunctionContact = function(inputValue){ 
 
    
 
    var outputElem = $('#OUTPUT'); 
 

 
      switch(inputValue){ 
 

 
      case "contact": 
 
      case "address": 
 
      outputElem.html("Here's Our Address"); 
 
      break; 
 

 
      case "email": 
 
      case "email address": 
 
      outputElem.html("Here's Our Email"); 
 
      break; 
 

 
      case "phone": 
 
      case "number": 
 
      outputElem.html("Here's Our Phone"); 
 
      //Anotherfunction(); // dont know what this does... 
 
      break; 
 
       
 
      }; 
 
}; 
 
firstfunction();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="INPUTBOX"> 
 
<em>Type "contact" for example</em> 
 
<div id="OUTPUT"></div>

+0

您好,MiscFunctionContact();帶你到另一個功能,我試圖縮短它。我將編輯帖子以更好地解釋它 – Ste