2009-12-28 1 views
0

HTML-код: HTML-код динамически создается.отладка, функция JQuery не работает

<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> 

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); 

    }); 

Когда я вход что-то в question6 или

Вопрос7

, функция $ ('вход [ID = вопрос ] '). keyup (function (ev)}, не работает, нет alert(). Другие функции jquery этого HTML-файла отлично работают. Любая идея?

+0

Попробуйте '$ (" input [id^= 'question'] ")' –

+0

Не работает. – Steven

ответ

2

убедитесь, что вы завершаете скрипт jQuery в $(document).ready().

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

ИЛИ

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

Это не работает, даже я завершаю сценарий Jquery в $ (document) .ready(). – Steven

+0

Что может помешать выполнению этого кода JQuery? – Steven

0

Убедитесь, что когда вы связыванием этого элемента «Вопрос7» или «Вопрос6» на KeyUp события, оно существует на странице/DOM, как вы создаете его динамически. Вы можете проверить это в firebug

+0

Да, он существует на странице/DOM. – Steven