在我的.js文件的下面代码中,第一个函数save_audition
运行良好。第二个,我只是复制/粘贴和更改一些变量不是,或某种原因。我已经完成了一些故障排除并排除了我的.php文件(手动调用后工作正常)以及.html,并确定此脚本由于某种原因而无法解雇。
这是我第一次使用AJAX的项目,所以它可能非常简单,不确定。仅供参考,我使用admin-ajax.php在Wordpress的AJAX框架中工作
编辑:这是主插件文件的一个pastebin:http://pastebin.com/AaJ6QqTx
以下是.js文件中的代码。第一个('点击')事件(save_audition)工作正常,第二个(hide_audition)正在工作,return false;
工作以防止链接被触发,但实际的AJAX点击事件没有发生。
//Save (or remove) an audition from the user's saved auditions meta using ajax
$('.save-audition').on('click', function() {
var post_id = $(this).attr('data-post_id');
var nonce = $(this).attr('data-nonce');
var clicked = $(this);
$.ajax({
type : 'post',
dataType : 'json',
url : myAjax.ajaxurl, //we can use this value because in our php file we used wp_localize_script
data : {action: 'tps_save_audition', post_id : post_id, nonce: nonce},
success: function(response) {
$('#alerts').append('<div class="alert"><div class="alert-icon"><i class="fa fa-exclamation"></i></div><div class="alert-message">'+response.message+'</div><div class="close"><i class="fa fa-close"></i></div></div>');
$('#alerts .alert').fadeIn(400);
if(response.type == 'success') {
clicked.children('span').children('.fa-stack-2x').addClass('fa-check');
clicked.children('span').children('.fa-stack-1x').addClass('saved');
} else if (response.type = 'removed') {
clicked.children('span').children('.fa-stack-2x').removeClass('fa-check');
clicked.children('span').children('.fa-stack-1x').removeClass('saved');
} else {
alert(response.message);
}
}
})
return false;
});
//Hide an audition from the user's view by saving it as user_meta
$('.hide-audition').on('click', function() {
var post_id = $(this).attr('data-post_id');
var nonce = $(this).attr('data-nonce');
var clicked = $(this);
$.ajax({
type : 'post',
dataType : 'json',
url : myAjax.ajaxurl, //we can use this value because in our php file we used wp_localize_script
data : {action: 'tps_hide_audition', post_id : post_id, nonce: nonce},
success: function(response) {
$('#alerts').append('<div class="alert"><div class="alert-icon"><i class="fa fa-exclamation"></i></div><div class="alert-message">'+response.message+'</div><div class="close"><i class="fa fa-close"></i></div></div>');
$('#alerts .alert').fadeIn(400);
if(response.type == 'success') {
clicked.children('i').css('color', 'red');
} else {
alert(response.message);
}
}
})
return false;
});
答案 0 :(得分:0)
好吧,像往常一样,它归结为一个愚蠢的编码器错误。在我的html中,我有两个元素与类&#34; hide-audition&#34;偶然的,这是打破它。
我想我会将此问题留给其他人,以提醒您在排查时仔细梳理每一段代码。