2013-03-20 29 views
0

我已經創建了一個html頁面,使用javascript創建輸入框,並使用jquery將該類分配給輸入框,然後嘗試使用focus()類名稱,但它根本不起作用。當我點擊輸入框,警報不彈出:(focus()不適用於由javascript創建的輸入

有誰知道是怎麼回事錯在這裏,我怎麼能解決這個問題

html頁面:??

<table border="0" width="800"> 
    <tr> 
     <td align="center"> 
      <div id="test"> 

      </div>  
     </td> 
    </tr> 
    </table> 

JavaScript的:

htmlValue = "<input maxlength='4' size='2' type='text' id='startTime_1' value='" + startTime + "' />"; 

$("#test").html(htmlValue); 


$('#startTime_1').addClass('test1'); 


$('#test1').focus(function() { 
    alert('inside'); 
}); 
+0

你在哪裏追加投入? – 2013-03-20 01:04:30

回答

1

以下代碼:

$('.test1').focus(function() { 
    alert('inside'); 
}); 

應改爲綁定到#test第一。

$('#test').focus('.test1', function() { 
    alert('inside'); 
}); 

既然你還在使用jQuery 1.4.2;您需要爲處理程序使用.live()方法。

代碼應

$('#test').live('focus', '.test1', function() { 
+0

錯誤顯示:錯誤:無法獲取值property'handler':object是null或者undefined – 2013-03-20 02:50:07

+0

@JinYong你正在使用哪個版本的jQuery? – hjpotter92 2013-03-20 02:51:40

+0

jQuery JavaScript庫v1.4.2 – 2013-03-20 02:52:46

0

如果你想添加處理程序動態創建的內容,你想要麼添加處理程序的內容已經添加,或者更常見的做,只是使用事件代表團後。 jQuery的,這意味着使用。對:

$('.test1').on('focus', function() { 
    alert('inside'); 
}); 

這裏的documentation以瞭解更多有關使用。上。

+0

我試過但錯誤顯示錯誤:對象不支持屬性或方法''' – 2013-03-20 02:48:12

+0

如果您使用的是舊版本的jQuery,則使用.live代替.on – kinakuta 2013-03-20 03:30:48