2010-11-06 73 views
0

考慮:jQuery的參考插入DIV

<div id="message"></div> 

jQuery的說:

var html_to_insert = '<div id="mynewdiv"><input id="myfield" name="myfield" type="text" value="" /></div>' 
$('#message').html(html_to_insert); 

HTML結果不出所料:

<div id="message"><div id="mynewdiv"><input id="myfield" name="myfield" type="text" value="" /></div></div> 

我遇到的問題是,當我叫「myfield」它不起作用:

$('#myfield').change(function(){      
    alert("field changed");      
}); 

我該如何解決這個問題?

我相信它不會調用它的原因是因爲該字段在頁面首次呈現時不存在,但我不知道如何解決該問題。

回答

2

首先

$('#myfield').change(      
    alert("field changed");      
); 

是無效的。它應該是:

$('#myfield').change(function(){      
    alert("field changed");      
}); 

但是,如果您在頁面加載時調用它,則應該使用live。

$('#myfield').live('change', function(){      
    alert("field changed");      
}); 
+0

謝謝,我固定的變化(函數.... – Jason 2010-11-06 23:28:34

+0

當頁面加載#myfield不存在。它只存在於jQuery將其放入html – Jason 2010-11-06 23:29:29

+0

@Jason然後使用實例時 – PetersenDidIt 2010-11-06 23:31:36

0

要看到,如果領域存在這樣做:

alert($('#myfield').length > 0); 
0

的ELEM插入到DOM後,也只需要添加一個事件:


$('#message').html(html_to_insert, function() { 
    $('#myfield').change(function(){      
    alert("field changed");      
    }); 
});