0

在初始化时在我的自定义 WordPress 插件中使用 jquery 时出现以下错误Type Error: $.effects.effect is undefined。另一个问题:现场活动被忽略,我得到jQuery(...).live is not a function. 我一直在尝试在我的插件中加载最新的 Jquery,但即使这样,问题仍然存在

public function init()
    {
        wp_deregister_script('jquery');
        wp_register_script('jquery', ("http://code.jquery.com/jquery-1.9.1.js"), false, '');
        wp_enqueue_script('jquery-ui-js', 'http://code.jquery.com/ui/1.10.1/jquery-ui.js');
        wp_enqueue_script('jquery');
        wp_enqueue_script( 'konfigurator_ajax', plugin_dir_url( __FILE__ ) . 'config.js', array( 'jquery' ) );
        wp_localize_script( 'konfigurator_ajax', 'Konfigurator', array(
                'ajaxurl' => admin_url( 'admin-ajax.php') ,
                'nonce' => wp_create_nonce( 'konfigurator_ajax-nonce' )
        ) );
4

1 回答 1

0

我没有看到你的config.js,但我认为它使用了 jQuery UI 效果。您需要将注册和入队分开以进行正确的wp_enqueue_script工作。此外,您的代码是非 WP 标准的,我建议您使用此代码(正确安装 WordPress 3.5+):

public function init() {
   wp_register_script('konfigurator_ajax', plugin_dir_url(__FILE__) . 'config.js', array( 'jquery', 'jquery-ui-core', 'jquery-effects-core' ));
   wp_localize_script( 'konfigurator_ajax', 'Konfigurator', array(
       'ajaxurl' => admin_url( 'admin-ajax.php') ,
       'nonce' => wp_create_nonce( 'konfigurator_ajax-nonce' )
   ));
}
add_action('admin_init', 'init'); //or if OOP add_action('admin_init', array(&$this, 'init'));

public function print_scripts() {
    wp_enqueue_script('jquery-ui-core');
    wp_enqueue_script('jquery-effects-core');
    wp_enqueue_script('konfigurator_ajax');
}
add_action('admin_print_scripts', 'print_scripts'); //or if OOP add_action('admin_print_scripts', array(&$this, 'print_scripts'));
于 2013-03-19T19:37:42.447 回答