web-dev-qa-db-ja.com

wordPress管理者のjquery UI

Wordpressの管理領域でjQuery UIプラグインを使用したことがある人はいますか?

私はjQuery UIで日付ピッカー機能を使用しようとしていましたが、それはwordpress adminの組み込みjQueryと衝突しています。 http://docs.jquery.com/UI/Datepicker

これは私がコンソールで得るエラーメッセージです:

Uncaught TypeError: Cannot read property 'apply' of undefined
a.widget.a.extend._trigger
b.Widget._createWidget
b.widget.b
b.widget.bridge.b.fn
c.extend.each
c.fn.c.each
b.widget.bridge.b.fn
postboxes.init
postboxes.add_postbox_toggles
(anonymous function)
c.extend.ready
L

この衝突を回避するために私は何ができるでしょうか。

Jqueryを含めるために使用されるコードを追加します。

wp_register_script( 'jquery-tooltip', 'http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js');
wp_register_script( 'jquery-ui-datepicker', get_bloginfo('template_directory') . '/js/jquery-ui-1.8.8.custom.min.js' );
wp_register_script( 'jquery-admin-internal', get_bloginfo('template_directory') . '/js/jquery.admin.internal.js' );
wp_register_script( 'jquery-internal', get_bloginfo('template_directory') . '/js/jquery.internal.js' );

function enqueue_admin_jquery() {
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_script('jquery-admin-internal');
}
add_action('admin_init', 'enqueue_admin_jquery');
3
user1635

それは私がjQuery UIのバージョン1.7.3を使ったときにうまくいきました。

バージョン1.8.9はWordpressの管理者によって使用されるjQuertとの互換性の問題があるようです。

0
user1635

これが私のカレンダープラグインに含まれているものです:

  // Alternative solution for loading scripts only in plugin page
  if( (is_admin() ) && (isset($_GET['page'])))   { 
      // Register scripts and styles
      add_action('admin_init', 'wp_eventcal_init');
  }  

  function wp_eventcal_init() {    
    // Only load these scripts in Admin
    wp_deregister_script('jquery-ui-core');
    wp_register_script('jquery-ui','http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.js',array('jquery'));
    wp_enqueue_script('ui-datepicker', plugins_url('js/jquery.ui.datepicker.min.js',__FILE__));
    wp_enqueue_script('ui-timepicker', plugins_url('js/jquery.timepicker.js',__FILE__));
    wp_enqueue_script('wp-calendar', plugins_url('js/wp-eventcal.js',__FILE__));
    wp_enqueue_style('event_cal_css', plugins_url('styles/eventcal.css',__FILE__));          
  }

それから私はちょうどこれをする:

jQuery("#event_startTime, #event_endTime").timePicker();
1
Steven

私は3.1のいくつかのインストールが必要なサポートJQuery UI 1.8.9スクリプトのすべてをロードしていないと思います。特に "widgets.js"。したがって、「ウィジェット」エラーです。

0
user3810