我正在开发的wordpress插件无法引入jquery依赖项,尽管它在wp_enqueue_scripts函数的第三个参数中传递。使用谷歌浏览器上的检查功能显示此错误:“$不是一个函数”,所以我假设没有正确加载jquery。当显示“here”时,将访问js文件。任何帮助将不胜感激!
PHP管理页面:
function kent_sidebar_plugin_scripts(){
wp_enqueue_script('kent_sidebar_process',
plugin_dir_url(__FILE__).'inc/process.js', array('jquery'));
}
function kent_sidebar_add_admin_page(){
add_menu_page('Kent Sidebar Options', 'Kent Sidebar', 'manage_options',
'kent_sidebar', 'kent_sidebar_options');
}
add_action('admin_menu', 'kent_sidebar_add_admin_page');
add_action('admin_enqueue_scripts', 'kent_sidebar_plugin_scripts');
function kent_sidebar_options(){
require_once("inc/kent-sidebar-admin.php");
}
JS档案:
window.alert("here");
$(document).ready(function(){
$('#editSidebar').onclick(function(){
var optionVal = $('#sidebarList').find(":selected").text();
alert(optionVal);
})
});
答案 0 :(得分:1)
如果您通过插件加载脚本,jQuery有时不会通过$来定义,您必须通过函数手动传递它。所以这样的事情应该解决它:
window.alert("here");
jQuery(document).ready(function($){
$('#editSidebar').on("click",function(){
var optionVal = $('#sidebarList').find(":selected").text();
alert(optionVal);
})
});
同样onclick不是jQuery方法,我认为你在寻找.on()
答案 1 :(得分:1)
与WordPress一起打包的Jquery附带兼容模式,因此使用$ as别名的任何其他JS都可以一起运行。您可以使用jQuery包装器以$ eg。
添加代码 (function($) {
// your code with $
})( jQuery );
或者您可以在JS文件的顶部添加var $ = jQuery.noConflict();
。