2011-05-05 37 views
0

我有我的搜索結果加載到一個div使用AJAX函數,我試圖添加分頁的底部調用該ame函數,但我保持越來越:JavaScript裏面的div加載ajax無法訪問函數外的功能

Uncaught ReferenceError: update_results is not defined 

這裏是頁:[鏈接刪除]

下面有結果

爲什麼不能找到它的功能下一個頁面的鏈接?它工作正常被稱爲外AJAX格

謝謝。

回答

0

因爲您的功能是在document.ready()內部創建的,而不是在窗口級別創建的。只需將它從<script>下移出即可,應該沒問題。

+0

它會好的,但它會泄漏到全球範圍內。這通常是不受歡迎的。 – Alnitak 2011-05-05 15:38:50

1

它不起作用,因爲update_results在您的document.ready()閉包中聲明,但嵌入的onclick處理程序在全局範圍內調用。

以字符串形式編寫的任何嵌入式處理程序必須通過eval()傳遞,並且將無法看到在其他閉包中聲明的任何私有函數。

理想情況下,要修復它,您應該從HTML中刪除嵌入式處理程序,並將其註冊到相同的閉包中。

FWIW,最好恕我直言,永遠不要使用嵌入式處理程序。事件註冊和處理屬於JS文件,而不是HTML。

+0

你的意思是把函數放入被加載到div中的頁面中?我不能這樣做,因爲它需要在頁面加載時調用,並且div不會被加載。 – 472084 2011-05-05 15:41:44

+0

請問你能進一步擴展嗎? – 2013-02-07 15:24:51

+0

@ThomasClowes哪位? – Alnitak 2013-02-07 15:26:56