我寫了一個Ajax-y頁面,它顯示來自ajax請求的數據行。每行都有一個「刪除鏈接」,允許用戶通過ajax快速刪除該行。javascript範圍問題
我的問題是一個與function--的範圍
「主」頁面有一個功能,看起來像這樣:由返回
<script language="javascript" type="text/javascript">
window.addEvent('domready', function() {
function getRows(){
var myurl = 'myajaxurl.php';
var req = new Request({
async:false,
method: 'get',
url: myurl,
data: {'id':'<?php echo $id; ?>'},
evalScripts:true,
onSuccess: function(response) {
$('my_rows_div').set('html',response);
}
}).send();
}
function deleteRow(rowid){
alert(rowid);
}
});
數據'getRows'函數只是一些html行,它看起來像這樣:
<tr><td>data</td><td><a onclick="deleteRow(1)" href="javascript:void(0);">delete</a></td></tr>
<tr><td>data</td><td><a onclick="deleteRow(2)" href="javascript:void(0);">delete</a></td></tr>
所以非常好 - 但是當我渲染頁面並單擊「刪除」鏈接時,出現「deleteRow未定義」的js錯誤。
我知道這可能與範圍有關,但我不太明白這是如何工作的。如何從返回的Ajax數據中引用「父」頁面的deleteRow函數?
謝謝!
嗨,薩姆 - 感謝您的回覆。我試過了,現在錯誤「缺失;在聲明之前」 – julio 2010-09-20 23:23:06
@julio:我第一次弄糟了代碼片段。請注意更改:'window.deleteRow = function(rowid){' – 2010-09-20 23:28:57
我的壞山姆,在你的片段中錯過了一個paren。這樣可行!非常感謝你的幫助。 – julio 2010-09-20 23:30:12