我已经编写了一个小插件,其中加载了以下脚本
wp_enqueue_script(\'jquery\', plugins_url(\'/js/jquery.min.js\', __FILE__),\'\',\'1.7\',true);
wp_enqueue_script(\'new-cycle\', plugins_url(\'/js/cycle.js\', __FILE__),array( \'jquery\' ),\'1.0\',true);
wp_enqueue_script(\'new-jcarousellite\', plugins_url(\'/js/jcarousellite.js\', __FILE__),array( \'jquery\' ),\'1.0\',true);
wp_enqueue_script(\'new-fancybox\', plugins_url(\'/js/fancybox.js\', __FILE__),array( \'jquery\' ),\'1.0\',true);
我还有一个javascript代码来调用cycle和fancybox函数(从选项和post_元表加载参数/选项)
function front_js(){ ?>
<script>
$(document).ready(function(){
$(".video-popup").fancybox();
$(".video_msgs").cycle({speed:\'<?php echo get_option("cycle_speed");?>\'});
});
</script>
<?php }
此代码通过使用添加到页脚
add_action(\'wp_footer\', \'front_js\');
现在,我的javascript代码在所有所需脚本之前加载,如
<script>
$(document).ready(function(){
$(".video-popup").fancybox();
$(".video_msgs").cycle();
});
</script>
<script type=\'text/javascript\' src=\'http://localhost/wordpress/wp-content/themes/twentyfifteen/js/functions.js?ver=20141212\'></script>
<script type=\'text/javascript\' src=\'http://localhost/wordpress/wp-content/plugins/myplugin/js/cycle.js?ver=1.0\'></script>
<script type=\'text/javascript\' src=\'http://localhost/wordpress/wp-content/plugins/myplugin/js/jcarousellite.js?ver=1.0\'></script>
<script type=\'text/javascript\' src=\'http://localhost/wordpress/wp-content/plugins/myplugin/js/fancybox.js?ver=1.0\'></script>
<script type=\'text/javascript\' src=\'http://localhost/wordpress/wp-content/plugins/myplugin/js/counter.js?ver=1.0\'></script>
和给出错误
$(\'...\').fancybox()
不是函数
我认为这是因为代码是在fancybox之前加载的。编写此函数的js文件。我尝试打印\\u脚本函数,但建议不要使用此函数,并且wp_enqueue_script
仅适用于不使用自定义javascript代码的文件。
是否有任何方法在加载所需文件后加载我的自定义代码,或者有任何其他方法来解决此类问题。
如果我加载头中的所有文件,它就会工作,但这样会增加页面加载时间,这也是一种不好的方法。