Jquery wordpress多个ajax调用失败
我有一个自定义页面,我想在其中生成一个弹出窗口,该弹出窗口应根据客户端输入(代码小额支付)通过Ajax进行多次更新 我已经创建了一个插件来处理这个问题,它第一次运行良好,但第二次尝试失败 问题似乎是它找不到javascript插件文件。它直接到达插件php文件,但它不应该这样做 必须重新初始化javascript可能会有问题,但我不确定是不是这样,或者怎么做 因此,当我在第二次尝试中单击triggerJquery wordpress多个ajax调用失败,jquery,ajax,wordpress,Jquery,Ajax,Wordpress,我有一个自定义页面,我想在其中生成一个弹出窗口,该弹出窗口应根据客户端输入(代码小额支付)通过Ajax进行多次更新 我已经创建了一个插件来处理这个问题,它第一次运行良好,但第二次尝试失败 问题似乎是它找不到javascript插件文件。它直接到达插件php文件,但它不应该这样做 必须重新初始化javascript可能会有问题,但我不确定是不是这样,或者怎么做 因此,当我在第二次尝试中单击trigger标记时,它会将我发送到处理ajax的ajax-admin.php文件。由于它不读取javascr
标记时,它会将我发送到处理ajax的ajax-admin.php文件。由于它不读取javascript,因此不会停止
的默认行为
希望有人能帮忙
代码如下:
1-在原始页面加载时启动HTML(从functions.php)
你能试着替换一下吗
jQuery(".do_popup").click( function(e) {
与
它通过监听尚未创建的元素上的事件来工作。你能试着替换吗
jQuery(".do_popup").click( function(e) {
与
它通过监听尚未创建的元素上的事件来工作。@DRC走上了正确的轨道。问题是约束力 但它需要显式地对命名函数执行,才能使其工作。 因此,我调整了Ajax调用的
success
处理程序,并将脚本的第二部分转换为命名函数
这是:
jQuery(document).ready( function() {
jQuery(".do_popup").on("click", function(e) {
e.preventDefault();
var link = this;
var boo_zone= jQuery(link).attr("id");
var service;
if(boo_zone.includes('alloconv')){
service = 'alloconv';
boo_zone = boo_zone.replace('alloconv','');
}
else if(boo_zone.includes('paydiallo')){
service = 'paydiallo';
boo_zone = boo_zone.replace('paydiallo','');
}
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone,
service:service
};
// Post to the server
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:'xml',
success: function(data){
var message = jQuery( data ).find( 'supplemental message' ).text();
jQuery("#paiement_popup").html(message);
jQuery("#paiement_popup").css("display","block");
jQuery("#paydiallo_popup2").on("click", ajax2);
jQuery(".close_popup_paiement").on("click", close_popup_paiement);
}
});
});
//jQuery("#paydiallo_popup2" ).on("click",function(e) {
function ajax2(e){
e.preventDefault();
var service= jQuery(this).attr("id");
if(service.includes('alloconv')){
service = 'alloconv';
}
else if(service.includes('paydiallo')){
service = 'paydiallo';
}
var boo_zone = jQuery("#boo_zone").val();
var boo_code = jQuery("#boo_code").val();
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone,
boo_code: boo_code,
service:service
};
alert(info.boo_code);
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:'xml',
success: function(data){
var message = jQuery( data ).find( 'supplemental message' ).text();
alert(message);
jQuery("#paiement_popup").html(message);
jQuery("#paiement_popup").css("display","block");
}
});
// });
}
//jQuery(".close_popup_paiement").on("click", function() {
function close_popup_paiement(){
jQuery("#paiement_popup").css("display","none");
}
});
@刚果民主共和国走上了正确的道路。问题是约束力 但它需要显式地对命名函数执行,才能使其工作。 因此,我调整了Ajax调用的
success
处理程序,并将脚本的第二部分转换为命名函数
这是:
jQuery(document).ready( function() {
jQuery(".do_popup").on("click", function(e) {
e.preventDefault();
var link = this;
var boo_zone= jQuery(link).attr("id");
var service;
if(boo_zone.includes('alloconv')){
service = 'alloconv';
boo_zone = boo_zone.replace('alloconv','');
}
else if(boo_zone.includes('paydiallo')){
service = 'paydiallo';
boo_zone = boo_zone.replace('paydiallo','');
}
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone,
service:service
};
// Post to the server
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:'xml',
success: function(data){
var message = jQuery( data ).find( 'supplemental message' ).text();
jQuery("#paiement_popup").html(message);
jQuery("#paiement_popup").css("display","block");
jQuery("#paydiallo_popup2").on("click", ajax2);
jQuery(".close_popup_paiement").on("click", close_popup_paiement);
}
});
});
//jQuery("#paydiallo_popup2" ).on("click",function(e) {
function ajax2(e){
e.preventDefault();
var service= jQuery(this).attr("id");
if(service.includes('alloconv')){
service = 'alloconv';
}
else if(service.includes('paydiallo')){
service = 'paydiallo';
}
var boo_zone = jQuery("#boo_zone").val();
var boo_code = jQuery("#boo_code").val();
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone,
boo_code: boo_code,
service:service
};
alert(info.boo_code);
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:'xml',
success: function(data){
var message = jQuery( data ).find( 'supplemental message' ).text();
alert(message);
jQuery("#paiement_popup").html(message);
jQuery("#paiement_popup").css("display","block");
}
});
// });
}
//jQuery(".close_popup_paiement").on("click", function() {
function close_popup_paiement(){
jQuery("#paiement_popup").css("display","none");
}
});
谢谢@DRC。这对于该元素不是必需的,因为它是随页面加载的。如果你看一下我的代码,我为第二个元素“paydiallo_u9999”这样做了,它是动态加载的。无论如何,我试过你的建议,但是没有用。谢谢@DRC。这对于该元素不是必需的,因为它是随页面加载的。如果你看一下我的代码,我为第二个元素“paydiallo_u9999”这样做了,它是动态加载的。无论如何,我试过你的建议,但没有用。
jQuery(document).on('click', '.do_popup', function(e) {
jQuery(document).ready( function() {
jQuery(".do_popup").on("click", function(e) {
e.preventDefault();
var link = this;
var boo_zone= jQuery(link).attr("id");
var service;
if(boo_zone.includes('alloconv')){
service = 'alloconv';
boo_zone = boo_zone.replace('alloconv','');
}
else if(boo_zone.includes('paydiallo')){
service = 'paydiallo';
boo_zone = boo_zone.replace('paydiallo','');
}
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone,
service:service
};
// Post to the server
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:'xml',
success: function(data){
var message = jQuery( data ).find( 'supplemental message' ).text();
jQuery("#paiement_popup").html(message);
jQuery("#paiement_popup").css("display","block");
jQuery("#paydiallo_popup2").on("click", ajax2);
jQuery(".close_popup_paiement").on("click", close_popup_paiement);
}
});
});
//jQuery("#paydiallo_popup2" ).on("click",function(e) {
function ajax2(e){
e.preventDefault();
var service= jQuery(this).attr("id");
if(service.includes('alloconv')){
service = 'alloconv';
}
else if(service.includes('paydiallo')){
service = 'paydiallo';
}
var boo_zone = jQuery("#boo_zone").val();
var boo_code = jQuery("#boo_code").val();
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone,
boo_code: boo_code,
service:service
};
alert(info.boo_code);
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:'xml',
success: function(data){
var message = jQuery( data ).find( 'supplemental message' ).text();
alert(message);
jQuery("#paiement_popup").html(message);
jQuery("#paiement_popup").css("display","block");
}
});
// });
}
//jQuery(".close_popup_paiement").on("click", function() {
function close_popup_paiement(){
jQuery("#paiement_popup").css("display","none");
}
});