所以,我有以下js:
function RHP_AJAX(a, b, c)
{
jQuery.ajax({
type : 'POST',
url : custom.ajax_url,
data : { 'action': a , id: b},
success : function(data){
c;
return false;
}
});
}
然后另一个var:
jQuery(document).on( 'click', '.show', function(e) {
var c = jQuery('.extra').html(data);
RHP_AJAX('ajax', id, c);
});
问题是.html(data);
,因为data
尚未定义。我知道这个问题,但我不确定如何描述它(我相信当你看到代码时你们会理解的。)
如何解决此问题?
答案 0 :(得分:2)
您正在寻找一个函数参数:
function RHP_AJAX(a, b, c){
jQuery.ajax({
type : 'POST',
url : custom.ajax_url,
data : { 'action': a , id: b},
success : c
});
}
你可以像这样使用它:
jQuery(document).on( 'click', '.show', function(e) {
RHP_AJAX('ajax', id, function(data){
jQuery('.extra').html(data);
});
});
答案 1 :(得分:2)
在这里做的正确的事情就是从$.ajax
function RHP_AJAX(a, b) {
return jQuery.ajax({
type : 'POST',
url : custom.ajax_url,
data : { 'action': a , id: b}
});
});
jQuery(document).on( 'click', '.show', function(e) {
RHP_AJAX('ajax', id).then(function(data) {
jQuery('.extra').html(data);
});
});
答案 2 :(得分:1)
我假设当您单击.show
元素时,您想要查询服务器,然后将该响应注入.extra
元素。如果是这样,这是我的解决方案:
jQuery(document).on( 'click', '.show', function(e) {
jQuery.ajax({
type: "POST",
url: custom.ajax_url,
data: { "action": a, id: b },
success: function (data) {
jQuery(".extra").html(data);
}
});
});
这只是异步编程的一个问题。请在此处阅读:https://www.google.com/#safe=active&q=javascript%2Basynchronous%2Bprogramming
答案 3 :(得分:1)
尝试将该函数作为回调函数传递:
function RHP_AJAX(a, b, callback)
{
jQuery.ajax({
type : 'POST',
url : custom.ajax_url,
data : { 'action': a , id: b},
success : function(data){
callback(data);
return false;
}
});
}
jQuery(document).on( 'click', '.show', function(e) {
var callFunction = function(data) { jQuery('.extra').html(data);}
RHP_AJAX('ajax', id, callFunction);
});
答案 4 :(得分:1)
在我看来,您的代码应该像这样进行重组:
jQuery(document).on('click', '.show', function() {
RHP_AJAX('ajax', id);
});
function RHP_AJAX(a, b)
{
jQuery.ajax({
type : 'POST',
url : custom.ajax_url,
data : { 'action': a , id: b },
success : function(data){
jQuery('.extra').html(data);
}
});
}