为了使用jQuery UI自动完成,我加载了以下脚本:
wp_enqueue_script(\'jquery\');
wp_enqueue_script(\'jquery-ui-core\');
wp_enqueue_script(\'jquery-ui-widget\');
wp_enqueue_script(\'jquery-ui-position\');
wp_enqueue_style( \'jquery-ui-autocomplete\', $ul .\'/css/jquery-ui-1.8.custom.css\' );
wp_register_script(\'jquery-ui-autocomplete\', $url .\'/js/jquery-ui/jquery.ui.autocomplete.min.js\', array( \'jquery-ui-widget\', \'jquery-ui-position\' ), \'1.8.2\', true );
wp_enqueue_script( \'jquery-ui-autocomplete\', $url .\'/js/jquery-ui/jquery.ui.autocomplete.min.js\', \'1.1\', true );
在完成上述脚本之后,我加载了自己的js,其中包括以下代码:
$(function(){
$("#to").autocomplete({
// code...
});
});
Firebug显示所有脚本和样式都已加载,并给出错误消息“$不是函数”。如何更正此错误?
最合适的回答,由SO网友:Chris_O 整理而成
WordPress不需要jQuery的冲突包装器。
(function($){
$("#to").autocomplete({
// code...
});
})(jQuery);
或:
jQuery(function(){
jQuery("#to").autocomplete({
// code...
});
});
SO网友:mybecks
我用于wp\\U enqueue\\U纸条,如下一行:
wp_enqueue_script(\'jquery-ui-autocomplete\', \'\', array(\'jquery-ui-widget\', \'jquery-ui-position\'), \'1.8.6\');
由于jquery ui autocomplete是WP框架的一部分->
see here在我的编码中,我使用自动完成功能的方式与@Chris\\u O提到的相同:
jQuery(document).ready(function($) {
var availableTags = ["Batman", "Spiderman", "Hulk"];
$( "#foo" ).autocomplete({
source: availableTags
});
});
加载如此多的脚本(如您的示例中的脚本)是不必要的,因为jquery默认情况下是从wp框架加载的。我建议您在初始化时清理脚本并将其减少到最小值,只加载所需的脚本。请看一下
wp codex.