2009-12-28 42 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

question7

, 功能$('輸入[ID^=問題]')。keyup(function(ev)}不起作用,沒有alert()。這個HTML文件的其他jquery函數工作正常。 有什麼想法?

+0

嘗試'$(「輸入[id^='問題']」)' – 2009-12-28 07:23:35

+0

它不起作用。 – Steven 2009-12-28 07:30:48

回答

2

確保你包裝了你的jQuery腳本$(document).ready()

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

OR

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

即使我在$(document).ready()中包裝了Jquery腳本,它也不起作用。 – Steven 2009-12-28 07:35:08

+0

什麼會干擾此Jquery代碼的執行? – Steven 2009-12-28 10:32:11

0

確保當你綁定元素 「question7」 或 「question6」 到keyup事件,它存在於頁/ DOM因爲你是動態生成它。你可以檢查它在螢火蟲

+0

是的,它存在於頁面/ DOM中。 – Steven 2009-12-28 08:05:08