Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SmoothState和Wordpress。为玩家和谷歌图表调用回调函数是什么?_Javascript_Wordpress_Google Visualization - Fatal编程技术网

Javascript SmoothState和Wordpress。为玩家和谷歌图表调用回调函数是什么?

Javascript SmoothState和Wordpress。为玩家和谷歌图表调用回调函数是什么?,javascript,wordpress,google-visualization,Javascript,Wordpress,Google Visualization,我认为这是一个纯粹的技术问题,尽管我在本例中提到使用wordpress以及特定的插件和短代码 我在我的Wordpress中使用。除了两件事外,一切正常: 1-“可视化工具”或“内嵌谷歌电子表格查看器”插件,用于使用谷歌图表的wordpress。我找不到在“回调”上调用的函数 2-使用MediaElement Wordpress作为本机音频播放器,播放列表也带有本机短码和短码时也是如此。出现在第一页,但我不知道调用什么回调来重新显示玩家 如何解决 也许我可以发布一些更技术性的东西,但是如果我知道在

我认为这是一个纯粹的技术问题,尽管我在本例中提到使用wordpress以及特定的插件和短代码

我在我的Wordpress中使用。除了两件事外,一切正常:

1-“可视化工具”或“内嵌谷歌电子表格查看器”插件,用于使用谷歌图表的wordpress。我找不到在“回调”上调用的函数

2-使用MediaElement Wordpress作为本机音频播放器,播放列表也带有本机短码和短码时也是如此。出现在第一页,但我不知道调用什么回调来重新显示玩家

如何解决


也许我可以发布一些更技术性的东西,但是如果我知道在哪里可以找到要调用的函数,我就不会在这里发布这个问题。

我看到你正在使用jQuery的
isFired
控件,正如在博客文章中解释的那样(h/t:this)

在那篇文章的评论中,作者说:

是的,这就是我要做的,进入插件,找到已注册的脚本,然后取消注册并重新注册,这有点痛苦,但目前我认为没有其他方法可以做到这一点

理想的解决方案是编写一些可以找到所有已注册脚本并加载它们的内容,而无需复制它们

我让您的#2工作的方法是,当我将SmoothState排队时,将MediaElement排队:

wp_enqueue_style( 'wp-mediaelement' );
wp_enqueue_script( 'wp-mediaelement' );
WP仅在页面上有媒体短码时才将其排队。如果我们从另一个没有它的页面开始,当SS加载包含媒体元素的页面时,脚本不会排队

我的一个日历插件也有你同样的问题,除了在我的SS上排队脚本外,我还必须在回调上启动主函数(声明为全局),见下文。意见:

  • 它将取决于每个插件
  • 我不确定在每次回调时调用这个全局函数是否是个好主意
  • 如果你不想,也许取消注册/注销他们的JS文件,让你自己的JS文件排队也行
  • 在处理其他插件行为时,您应该使用
    函数来处理SmoothState。php
    不会减少交易
完整日历插件(简化):

平滑状态插件(简化):


也许以前没人这样做过?如果是这样的话,在没有看到问题的情况下很难提供帮助。调用“回调”的
函数是什么意思?谢谢@brasofilo。我的网站代码可以在这里找到:谢谢@brasofilo的回答。但对于#1问题,问题仍然存在。因为即使我将脚本从functions.php或直接在headby标记中排队,结果也不会改变。我在帖子和小部件以及我的网站主页上使用标签[playlist],一切正常。然后,当我(通过SmoothState)访问该站点时,后续页面不再显示播放器。什么也没有出现。我认为这与问题的原因相同#2,即在回调时调用某个函数,但我的问题是:调用什么函数?对于问题#1,我知道如何做。我不知道如何调用插件“内联谷歌电子表格查看器”(使用谷歌图表,因为电子表格可以工作)的回调。
var editor_data = new Function();

jQuery(document).ready(function($)
{
    editor_data = function(){
        $('#calendar').fullCalendar({ options });
    }
    editor_data();
}); 
jQuery(document).ready(function($) {
    var $body = $('html, body'),
    content = $('#page').smoothState({
        onEnd : {
            duration: 0, // Duration of the animations, if any.
            render: function (url, $container, $content) {
                $container.html($content);
                $(document).ready();
                $(window).trigger('load');
            }
        },
        callback: function(url, $container, $content) {
            editor_data();
        }
    }).data('smoothState');
});

(function($, undefined) {
    var isFired = false;
    var oldReady = jQuery.fn.ready;
    $(function() {
        isFired = true;
        $(document).ready();
    });
    jQuery.fn.ready = function(fn) {
        if(fn === undefined) {
            $(document).trigger('_is_ready');
            return;
        }
        if(isFired) {
            window.setTimeout(fn, 1);
        }
        $(document).bind('_is_ready', fn);
    };
})(jQuery);