比方說,我有以下的HTML代碼將Javascript事件處理程序綁定到Ajax HTML響應?
<div id="outer">
<div id="inner">Hello World</div>
</div>
在我的HTML頁面的最後,我用javascript附加事件處理程序像這樣,
document.getElementById('inner').onclick = function() {alert(this.innerHTML);}
document.getElementById('outer').onclick = function() {
/* An Ajax Call where the response, which will be a string of HTML content, then goes into document.getElementById('outer').innerHTML */
document.getElementById('inner').onclick = function() {alert(this.innerHTML);}
}
在上面的代碼,我期待<div id="inner">Hello World 2</div>
回來,這需要我重新附加onclick事件處理程序。這是有道理的,因爲返回的新響應只是一個字符串,我不得不告訴瀏覽器在轉換爲DOM後,我還需要一些事件處理程序
所以我的問題是,是否有更好的方法來管理事件包含HTML內容的AJAX響應的處理程序?我可以在html響應中使用內聯javascript,但是這會阻止我實現非侵入式javascript。那麼是否有一種方法可以實現非侵入式javascript,以及「維護」ajax html響應事件處理程序的有效方法?
我想如果你使用的是像jQuery這樣的JavaScript框架,他們通過.live()功能將它整理出來,除非你想自己組裝一個 – Sunny 2010-04-25 14:19:39