我正在學習新的jQuery $ .ajax回調語法。
問:如果我移動$('td.showcities')點擊函數之外的req.success,那麼我應該如何引用$ tr?jQuery 1.5 AJAX語法
// When the user clicks on a state, the list of cities will appear.
$('td.showcities').click(function(){
var $tr = $(this).closest('tr');
var StateID = $tr.data('StateID');
var StateName = $(this).next().text();
var req = $.ajax({
url: 'Remote/City.cfc?queryFormat=column'
,data: {
method:'WhereStateID'
,returnformat:'json'
,StateID:StateID
}
});
req.success(function(result){
$('.highlight').removeClass('highlight');
$('.err').removeClass('err');
if (result.MSG == '') {
$tr.addClass('highlight');
var qryCity = result.qry.DATA; // Normalize
qryCity.RecordCount = result.qry.ROWCOUNT; // Normalize
qryCity.ColumnList = result.qry.COLUMNS; // Normalize
var TableData = '';
for (var i = 0; i < qryCity.RecordCount; i++) {
TableData
+='<tr data-CityID="' + qryCity.CITYID[i] + '">'
+ '<td>' + qryCity.CITYNAME[i] + '</td>'
+ '</tr>';
};
$('#cities tbody').empty().append(TableData);
$('#cities thead th').text(StateName);
} else {
$tr.addClass('err');
$('#msg').text(result.MSG).addClass('err');
};
});
});
這很奇怪:當我使用上下文時,然後我失去了以下事件:.ajaxSend,.ajaxSuccess,.ajaxComplete。 – 2011-02-28 19:15:54
想想看,成功和錯誤方法必須與聲明req變量的位置處於同一級別,所以我不妨將它們全部留給點擊事件。 – 2011-02-28 22:28:43