【发布时间】:2011-12-10 01:50:57
【问题描述】:
更新
我有一个小错字,一切正常。
我不知道如何在多个 ajax 调用中使用作为函数参数传递的变量作为选择器。
First 和 Second 都可以,但是在调用 ThirdCallbackFunction 时单击“#button-”+ id_number 不会触发任何内容,尽管 alert("#button-" + id_number) 显示正确的元素 #button-0 #button-1 ...等
$(document).ready(function() {
// FIRST
$("#process").click(function(){
var somedata = $("#somedata").val();
$('input[type="text"]').removeClass("error");
$.ajax({
url: 'first.php',
type: "POST",
data: ({somedata: somedata }),
beforeSend:function(){
jQuery('#ajax-panel').html('<div class="loading"><img src="loading.gif" alt="Loading..." /></div>');
},
success: function(data){
$("#ajax-panel").html(data);
SecondCallbackFunction();
},
error:function(){
jQuery('#ajax-panel').html('<p class="error">Oops!</p>');
}
});
});
});
// SECOND
function SecondCallbackFunction(){
$(".load-button").click(function(){
var id = $(this).closest('.box').attr('id');
var arr = id.split('-');
var id_number = arr[1];
alert(id_number); //
$.ajax({
url: 'second.php',
type: "POST",
data: ({id_number: id_number }),
beforeSend:function(){
$("#"+id).find('.load-button').hide();
$("#"+id).append('<div class="loading"><img src="loading.gif" alt="Loading..." /></div>');
},
success: function(data){
$("#"+id).find('.loading').hide();
$("#"+id).append(data);
ThirdCallbackFunction(id_number);
},
error:function(){
$("#"+id).append('<p class="error">Oops!</p>');
}
});
});
}
// THIRD
function ThirdCallbackFunction(id_number){
alert(id_number); // SHOWING 1 , 2 ....etc
$("#button-" + id_number).bind("click", function() { // DOING nothing
var title = $('#title' + id_number).val();
$.ajax({
url: 'third.php',
type: "POST",
data: ({title: title,
}),
beforeSend:function(){
$("#item"+id_number).append('<div class="loading"><img src="loading.gif" alt="Loading..." /></div>');
},
success: function(data){
$("#item"+id_number).find('.loading').hide();
$("#item"+id_number).append(data);
},
error:function(){
$("#"+id).append('<p class="error">Oops!</p>');
}
});
});
}
【问题讨论】:
-
您的代码显然没有任何问题。请发布实际重现问题所需的 HTML 和 Javascript,并仅保留相关功能。
-
控制台中有什么东西吗?当您在
ThirdCallbackFunction中对所需选择器执行console.log时,它是否显示有任何匹配的DOM 元素?第三次点击处理程序中的console.log是否出现? -
我有一个小错字,一切正常。
标签: javascript jquery jquery-selectors