我肯定错过了一些基础知识。
我在用这个plugin wich执行ajax操作,然后启动js函数作为回调。我想在我的主题的自定义js脚本中使用回调。
回调函数已经在主插件js的开头定义(但为空),然后作为$的回调被激发。将值放入其变量中的ajax帖子。
这是插件js的简化版本
jQuery(document).ready(function(){
new Favorites;
});
// Callback Function for use in themes
function favorites_after_button_submit(favorites, post_id, site_id, status){}
var Favorites = function()
{
var plugin = this;
var $ = jQuery;
// Initialization
plugin.init = function(){
plugin.bindEvents();
plugin.generateNonce();
}
$.ajax({
url: plugin.ajaxurl,
type: \'post\',
datatype: \'json\',
data: {
action : plugin.formactions.favorite,
nonce : plugin.nonce,
postid : post_id,
siteid : site_id,
status : status
},
success: function(data){
plugin.doStuff();
favorites_after_button_submit(data.favorites, post_id, site_id, status);
}
});
return plugin.init();
}
如您所见,函数
favorites_after_button_submit(){}
定义但不执行任何操作。
乍一看,我将从那里删除该函数,并在我的主题中使用它。但我肯定这不是解决问题的办法。
那么,我如何拦截作为回调调用的函数,从另一个js函数中获取其数据,并使用它执行一些操作呢?
最合适的回答,由SO网友:bluantinoo 整理而成
好吧,我发现了here 如何处理。
这太简单了,我简直不敢相信:
1) 在主题中包含一个自定义脚本,该脚本依赖于最喜爱的插件。示例:
wp_enqueue_script(\'script\', get_stylesheet_directory_uri() . \'/js/myscript.js\', \'simple-favorite\', \'1.0.0\', true);
2)在myscript中。js只需再次定义函数,并使其执行以下操作:
function favorites_after_button_submit(favorites, post_id, site_id, status){
console.log(\'done\');
}
看来js函数可以重新定义了?