2014-11-05 77 views
0

我創建一個HTML5應用程序,這裏是我想做的事:做一個循環中等待,直到按鈕被按下,繼續在JavaScript或Jquery的

我想創建一個循環爲其只要X比y小,它會暫停,詢問用戶輸入,一旦用戶輸入了一些內容,它會檢查x是否小於y,暫停並要求用戶輸入....直到x不再小於年。

我希望輸入是來自Framework7操作表的按鈕:http://www.idangero.us/framework7/docs/action-sheet.html#.VFhLMBb4oUM所以我希望循環等待,直到用戶按下其中一個按鈕。

這是可能做的JQuery或JavaScript?

----額外的資訊-----

程序運行時,用戶輸入的字(我們稱之爲W),一旦他/她做這一點,點擊一個按鈕。在此之後,輸入被分成一個數組,其中每個單詞是不同的值(稱爲這個數組單詞)。我有一個存儲單詞的數組,以及它們是什麼詞性。用戶將確定他們是什麼詞性。

我想一個循環或事件(兩者)大火是這樣的:所以我想通了,如何做到這一點(特別感謝@Bergi爲推薦這個)

for(i=0;i<words.length){ 
var buttons = [ 
    { 
     text: 'What is "'+listandtypes[0][i]+'"', //word 
     label: true 
    }, 
    { 
     text: 'Adjective', 
     onClick: function() { 
      listandtypes[1][i] = "adj"; //part of speech 
      myApp.alert('Button1 clicked'); 
     } 
    }, 
    { 
     text: 'Adverb', 
     onClick: function() { 
      listandtypes[1][i] = "adv"; 
      myApp.alert('Button2 clicked'); 
     } 
    }, 
    { 
     text: 'Noun', 
     onClick: function() { 
      listandtypes[1][i] = "noun"; 
      myApp.alert('Button2 clicked'); 
     } 
    }, 
    { 
     text: 'Verb', 
     onClick: function() { 
      listandtypes[1][i] = "verb"; 
      myApp.alert('Button2 clicked'); 
     } 
    }, 
    { 
     text: 'Other', 
     color: 'red', 
     onClick: function() { 
      listandtypes[1][i] = "idk"; 
      myApp.alert('Cancel clicked'); 
     } 
    }, 
]; 
myApp.actions(buttons); 
     } //I want this loop to wait until a button is pressed 
//More code 
} 
+1

不,你不能,因爲按鈕按下是異步的。將函數重寫爲遞歸函數,並從按鈕的點擊處理程序中調用下一個「迭代」。 – Bergi 2014-11-05 00:38:56

+0

好的,謝謝@Bergi – TyroSmith 2014-11-05 01:15:33

回答

0

好:

function selectWords(){ 

     var buttons = [ 
     { 
      text: 'What is "'+listandtypes[0][thecurrentnum]+'"', 
      label: true 
     }, 
     { 
      text: 'Adjective', 
      onClick: function() { 
       listandtypes[1][thecurrentnum] = "adj"; 
       thecurrentnum = thecurrentnum + 1; 
       if(thecurrentnum < word.length){ 
        selectWords(); 
       } 
       else{ 
        timer1(); 
       } 
       console.log("Current Num: " +thecurrentnum+ ", Length: " +thecurrentnum); 
      } 
     }, 
     { 
      text: 'Adverb', 
      onClick: function() { 
       listandtypes[1][thecurrentnum] = "adv"; 
       thecurrentnum = thecurrentnum + 1; 
       if(thecurrentnum < word.length){ 
        selectWords(); 
       } 
       else{ 
        timer1(); 
       } 
      } 
     }, 
     { 
      text: 'Noun', 
      onClick: function() { 
       listandtypes[1][thecurrentnum] = "noun"; 
       thecurrentnum = thecurrentnum + 1; 
       if(thecurrentnum < word.length){ 
        //thecurrentnum = thecurrentnum + 1; 
        selectWords(); 
       } 
       else{ 
        timer1(); 
       } 
      } 
     }, 
     { 
      text: 'Verb', 
      onClick: function() { 
       listandtypes[1][thecurrentnum] = "verb"; 
       thecurrentnum = thecurrentnum + 1; 
       if(thecurrentnum < word.length){ 
        //thecurrentnum = thecurrentnum + 1; 
        selectWords(); 
       } 
       else{ 
        timer1(); 
       } 
      } 
     }, 
     { 
      text: 'Other', 
      color: 'red', 
      onClick: function() { 
       listandtypes[1][thecurrentnum] = "idk"; 
       thecurrentnum = thecurrentnum + 1; 
       if(thecurrentnum < word.length){ 
        //thecurrentnum = thecurrentnum + 1; 
        selectWords(); 
       } 
       else{ 
        timer1(); 
       } 
      } 
     }, 
    ]; 
    myApp.actions(buttons); 
} 
相關問題