我一直在我的頭撓了一個小時...我有一個待辦事項列表完成每個項目上的按鈕。每次用戶點擊它時,都應該對服務器執行一次Ajax調用,調用標記函數然後更新整個列表。附加活動與原型
我面臨的問題是,新列表有完成按鈕以及每個項目上。並且它在第一次更新後不再附加點擊事件。
如何將新更新的元素的事件處理程序附加到原型?
注:我已經通過了evalScripts:真正到了更新包裝
初始事件處理程序附加
<script type="text/javascript">
document.observe('dom:loaded', function() {
$$('.todo-done a').each(function(a) {
$(a).observe('click', function(e) {
var todoId = $(this).readAttribute('href').substr(1);
new Ajax.Updater('todo-list', $.utils.getPath('/todos/ajax_mark/done'), {
onComplete: function() {
$.utils.updateList({evalScripts: true});
}
});
});
})
});
</script>
updateList:
<script type="text/javascript">
var Utils = Class.create({
updateList: function(options) {
if(typeof options == 'undefined') {
options = {};
}
new Ajax.Updater('todo-list', $.utils.getPath('/todos/ajax_get'), $H(options).merge({
onComplete: function() {
$first = $('todo-list').down();
$first.hide();
Effect.Appear($first, {duration: 0.7});
new Effect.Pulsate($('todo-list').down(), {pulses: 1, duration: 0.4, queue: 'end'});
}
})
);
}
})
$.utils = new Utils('globals');
</script>
任何幫助非常感謝,謝謝:)
對不起有關可怕的縮進,不能做太多關於它=/ – 2009-09-05 02:45:49