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