自定义wordpress插件中的jquery冲突

时间:2013-03-19 11:08:46

标签: wordpress plugins

在我的自定义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' )
        ) );

1 个答案:

答案 0 :(得分: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'));