我之前問過類似的問題How can I have jquery attach behavior to an element after inserting it,但是還是沒有找到答案。爲了保持清楚,我用另一個例子問了一個新問題。jQuery的live和livequery當我通過ajax加載表單時不工作
這是我的代碼不起作用。
$(document).ready(function() {
$('form.edit_color').live('submit', function(){
var form = $(this).closest('form');
var colorRow = $(this).closest('tr');
var action = $(form).attr('action');
var formData = $(form).serialize();
$(colorRow).fadeOut();
$.post(action, formData,
function(data) {
$(form).replaceWith(data);
$(colorRow).fadeIn();
});
return false;
});
});
這是什麼情況,對於我的每一個表單,我都可以通過ajax提交它們,並用更新的表單替換它。但是,當我點擊新的提交按鈕時沒有任何反應。
但我不更換colorRow,只是裏面的表格,這是一個小型 – ToreyHeinz 2009-11-24 01:39:45
另外我只是實現了相同的代碼的其他地方和它的工作...我認爲不同的是,在這種情況下,我的表單不正確地包含了一些表格元素。 – ToreyHeinz 2009-11-24 01:42:56
啊,好的,很酷。是的,會發生這樣的情況:你不能在IE中的表中設置innerHTML,所以jQuery有一個解決方法,但是因爲它只會在你創建的元素是像'tr'或'tbody'這樣的表子元素時觸發。 jQuery假設你只會以HTML有效的方式嵌套,這可能夠公平。 – bobince 2009-11-24 18:12:22