2014-06-05 212 views
5

我已經編寫了這個腳本來向我的機器發出TCPIP請求,這工作正常。Uncaught TypeError:undefined不是使用jQuery的函數

當我在開關中獲得status = 0(0 =讀卡器未準備就緒)時,我編寫了代碼,以便10秒後的間隔再次按下「#print_card」按鈕,以便再次嘗試請求。

一切工作正常,但是當我再次按下按鈕,$('#print_card').trigger("click");我得到了著名的錯誤:

遺漏的類型錯誤:不確定是不是同時使用jQuery功能和控制檯,這給bootstrap.min.js:6文件(這是原始的Bootstrap文件)。

我試圖$('#print_card').click();並沒有什麼變化......

這是我的代碼。如果我刪除線#439 $('#print_card').trigger("click");我不明白的錯誤...:

var interval; 
    var status_timer; 
    function attendi_e_riprova(txt){ 
    var sec = 10; 

    var interval = setInterval(function(){ 
     if(sec != 1){ 
     sec--; 
     if(sec == 1){ 
      sec_word = 'secondo'; 
     }else{ 
      sec_word = 'secondi'; 
     } 
     $('#card-modal-body').html('<p>'+txt+'</p>'); 
     }else{ 
     clearInterval(interval); 

     //THIS IS THE TRIGGER <----------------------------------- 
     $('#print_card').trigger("click"); 
     //THIS IS THE TRIGGER <----------------------------------- 

     return false; 
     } 
    }, 1000); 

    $('.close').click(function(){ 
     clearInterval(interval); 
     clearInterval(status_timer);   
    }); 

    } 

    var codemaster = '1'; 
    var chain = 1; 
    var shop = 1; 

    function scriviCard(){ 
    //Another function 
    } 


    $('#print_card').click(function(){ 
    $('#card-modal-body').html('<p><i class="fa fa-spinner fa-spin"></i> Ricerca del lettore e card, attendere&hellip;</p>'); 

    var req = '"CWD2";"'; 

    $.post(base_url()+'config/RichiestaTCPIP', {array:req}, function(status){ 
     if(status == 'err'){ 
     console.error('Errore: controller file config.php funzione di linea #117'); 
     }else{ 
     console.log('Status: '+status) 

     switch(status){ 
      case '0': 
      attendi_e_riprova('<i class="fa fa-ban text-danger"></i> Lettore NON disponibile. Assicurarsi che sia collegato.'); 
      break; 
      case '1': 
      attendi_e_riprova('Lettore vuoto. Inserire una card vergine per poterla scrivere.'); 
      break; 
      case '4': 
      attendi_e_riprova('<i class="fa fa-check text-success"></i> Card trovata. In attesa di riconoscimento...'); 
      break; 
      case '5': 
      attendi_e_riprova('<i class="fa fa-ban text-danger"></i> Card in scrittura. Attendere completamento.'); 
      break; 
      default: 
      //Nuova richiesta per la creazione card (per status 2 o 3) 
      scriviCard(); 
      //console.log(status) 
      break; 
     } 
     }   
    }) 

    }) 
+0

您是否在引導文件之前加載jQuery?您是否在等待在您的代碼中使用jQuery之前加載了DOM? – MarcoL

+1

*「我寫過這個腳本來向我的機器發出一個TCPIP請求...」*不*幾乎*低級。 :-)您要求瀏覽器爲您提供HTTP請求。 –

+0

你在幾個地方錯過了一些';',例如'clearInterval(t); })'例如 – urbz

回答

4

我想你應該嘗試的觸發命令之前定義的變量的函數!是這樣的:

window.clickFunction=function(
    $('#card-modal-body').html('<p><i class="fa fa-spinner fa-spin"></i> Ricerca del lettore e card, attendere&hellip;</p>'); 

var req = '"CWD2";"'; 

$.post(base_url()+'config/RichiestaTCPIP', {array:req}, function(status){ 
    if(status == 'err'){ 
    console.error('Errore: controller file config.php funzione di linea #117'); 
    }else{ 
    console.log('Status: '+status) 

    switch(status){ 
     case '0': 
     attendi_e_riprova('<i class="fa fa-ban text-danger"></i> Lettore NON disponibile. Assicurarsi che sia collegato.'); 
     break; 
     case '1': 
     attendi_e_riprova('Lettore vuoto. Inserire una card vergine per poterla scrivere.'); 
     break; 
     case '4': 
     attendi_e_riprova('<i class="fa fa-check text-success"></i> Card trovata. In attesa di riconoscimento...'); 
     break; 
     case '5': 
     attendi_e_riprova('<i class="fa fa-ban text-danger"></i> Card in scrittura. Attendere completamento.'); 
     break; 
     default: 
     //Nuova richiesta per la creazione card (per status 2 o 3) 
     scriviCard(); 
     //console.log(status) 
     break; 
    } 
    }}); 

,然後當你想將它這樣使用它:

$('#print_card').click(window.clickFunction); 

window.clickFunction.trigger(); 

注意:您必須將變量定義爲一個全球性的變量,並且必須在觸發器或點擊線之前定義!

讓我知道它是怎麼回事。

+1

好的,工作!我這樣做:'window.clickFunction = function {...}'而不是'window.clickFunction.trigger();'我只是放置了一個普通的javascript''clickFunction();' –

相關問題