2009-12-28 9 views
0

Code HTML: Le code HTML est créé dynamiquement.debug, la fonction Jquery ne fonctionne pas

<li> 
    <div class="above">What do I like best?</div> 
    <div class="below"> 
    <label>Answer:(1 words)</label> 
    <input id="question6" type="text" size="5"/> 
    <label id="sign6"/> 
    </div> 
    </li> 
    <li> 
    <div class="above">What city do I like?</div> 
    <div class="below"> 
    <label>Answer:(1 words)</label> 
    <input id="question7" type="text" size="5"/> 
    <label id="sign7"/> 
    </div> 

Code Jquery:

function subjectivecheck(id){ 
     alert(id); 
     var cost=(new Date().getTime() - start.getTime())/1000; 
     var value=$('#question'+id).val(); 
     $.post("subjectivecheck.php?",{val:value, qid:id,time:cost, a_id:"<?php echo $announcementid; ?>"},function(xm){ 

      switch(parseInt(xm)){ 
       case 4: 
       { $htm='Congrats,you have passed the test.'; 
        $('#success').css({"color":"green"}); 
        $('#success').text($htm); 
       return; 
       } 
       case 1: 
       { 
       $htm='V'; 
      $('#sign'+id).css({"color":"green"}); 
      $('#sign'+id).text($htm); 
      break; 
       } 
       case 0:{ 

        $htm='X'; 
      $('#sign'+id).css({"color":"red"}); 
      $('#sign'+id).text($htm); 
      break; 
       } 
       case 3:{ 
        $('#subjectivequestion').text('You have failed at this announcement.'); 

        $('#choicequestions').text(" "); 
       } 
      } 

     }); 

    } 
    var ajaxCallTimeoutID = null; 
    $('input[id^=question]').keyup(function(ev){ 
     alert(this.id.substr(8)); 
    if (ajaxCallTimeoutID != null) 
     clearTimeout(ajaxCallTimeoutID); 

     ajaxCallTimeoutID = setTimeout(subjectivecheck(id), 1000); 

    }); 

Quand je entrée quelque chose dans question6 ou

question7

, la fonction $ ('entrée [id^= question ] '). keyup (fonction (ev)}, ne fonctionne pas, il n'y a pas alert(). D'autres fonctions de jquery de ce fichier HTML fonctionne bien. Une idée?

+0

Essayez '$ (" input [id^= 'question'] ")' –

+0

Cela ne fonctionne pas. – Steven

Répondre

2

assurez-vous d'envelopper votre script jQuery dans $(document).ready().

$(document).ready(function() { 
    // your jQuery script here. 
}); 

OU

$(function(){ 
    // your jQuery script here. 
}); 
+0

Cela ne fonctionne pas, même si j'enveloppe le script Jquery dans $ (document) .ready(). – Steven

+0

Qu'est-ce qui peut interférer avec l'exécution de ce code Jquery? – Steven

0

Assurez-vous que lorsque vous liez cet élément « question7 » ou « question6 » à l'événement keyUp, il existe dans la page/DOM que vous générez dynamiquement. Vous pouvez le vérifier dans firebug

+0

Oui, il existe dans la page/DOM. – Steven

Questions connexes