2012-11-26 85 views
-1

我有一個包含幾個表單域的頁面。當我在一個領域內點擊時,我需要觸發一個功能。所以我嘗試過:無法在焦點上觸發功能

$('#myInput').focus(function() { 
    alert('fired'); 
}); 

然而它沒有奏效。我認爲這是由於它在首次加載頁面後動態添加到頁面的方式。我試着將此功能附加到其他領域,他們工作得很好。

所以,我已經試過

$(document).delegate('#myInput', 'click', function() { 

$('#myInput').live('focus', function() { 

,仍然沒有運氣。有什麼建議麼?謝謝。

UPDATE --------------------

還是不知道爲什麼,但它更改爲

$('input[name="myInput"]').focus(function() { 

工作。

+0

雖然你不應該使用'.live'或'.delegate ' ,他們應該工作。你能用jsfiddle向我們展示問題嗎? –

+0

你可以發佈一些代碼並將其動態添加到頁面中嗎?如果這是一個asp:textbox with master page – CjCoax

+0

這就是問題所在,當我測試代碼的工作時,只是不在後面添加的幾個字段上...... – santa

回答

0

試試focusin。也許會工作。

1

問題是$('#myInput').focus(...);只會在第一次運行javascript時存在'#myInput'

如果您在javascript加載後動態添加'#myInput',那麼您需要javascript來動態添加偵聽器。

下面將做到這一點:

的Javascript

$('body').on('focus', '#myInput', function() { 
    alert('fired'); 
}); 

Demo

Documentation