我遇到了一个奇怪的问题。下面的代码加载了WP jQuery库和我自己的JS文件。我点击了路径并加载了文件。它们都在页面底部加载(上图),jQuery库在我的文件之前。
我正在使用jQuery UI中的日期选择器,但它不会加载。 jQuery需要排在首位吗?如果是这样,我怎么能把它拿到头上?我试图在没有运气的情况下重写$ in_footer。
我是创建插件的新手,所以我完全错过了什么?
任何帮助都将不胜感激。
<?php
add_action('admin_init', 'ps_events_admin_init');
add_action('admin_menu', 'ps_events_admin_menu');
function ps_events_admin_init(){
wp_register_script('ps-events-script', plugins_url('/js/psevents.js', __FILE__));
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_script('ps-events-script');
}
function ps_events_admin(){
include('psevents-admin_view.php');
}
function ps_events_admin_menu(){
add_menu_page("PS Events", "PS Events", 1, "PS Events", "ps_events_admin");
}
?>
HTML输出
<script type='text/javascript' src='http://localhost:8888/mysite/wp-admin/load-scripts.php?c=1&load%5B%5D=admin-bar,hoverIntent,common,jquery-ui-core,jquery-ui-datepicker,jquery-ui-widget,jquery-ui-position,wp-pointer&ver=3.5.1'></script>
<script type='text/javascript' src='http://localhost:8888/mysite/wp-content/plugins/psevents/js/psevents.js?ver=3.5.1'></script>
</body>
答案 0 :(得分:1)
您应该在javascript文件之前加载jQuery
function ps_events_admin_init(){
wp_register_script('ps-events-script', plugins_url('/js/psevents.js', __FILE__));
wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_script('ps-events-script');
}
注意:由于您使用的是与WordPress捆绑在一起的jQuery,因此jQuery以noConflict模式加载。使用jQuery
代替$
。
或使用此替代方案:
jQuery(document).ready(function($){
//use $ here
});
答案 1 :(得分:-1)
我建议您使用:
<?php
add_action('wp_head','ps_events_admin_menu');
add_action('wp_head','ps_events_admin_init');
wp_enqueue_script('jquery');
?>
如果您拥有自己的JavaScript,则可以将其嵌入为以下函数:
<?php
add_action('wp_head','mysample');
wp_enqueue_script('jquery');
function mysample()
{
echo '<script language="JavaScript"> and JavaScript code';
}
?>