Wordpress管理区域中的JQwidget JQuery冲突

时间:2015-05-27 13:35:46

标签: jquery wordpress jqwidget

我在自定义Wordpress(v.4.2.2)插件中使用JQWidgets 3.8.0,即jqxDataTable功能。在我的插件中,我有以下功能:

  public static function cp_libstaff_load_javascript(){
 ?>
    <script>
       jQuery(document).ready(function () {            
          jQuery("#emu_libstaff_staff_table").jqxDataTable(
          {
            altRows: true,
            sortable: true,
            editable: true,
            selectionMode: 'singleRow',
            columns: [
              { text: 'First Name', dataField: 'First Name', width: 200 },
              { text: 'Last Name', dataField: 'Last Name', width: 200 },
              { text: 'Product', dataField: 'Product', width: 250 },
              { text: 'Unit Price', dataField: 'Price', width: 100, align: 'right', cellsAlign: 'right', cellsFormat: 'c2' },
              { text: 'Quantity', dataField: 'Quantity', width: 100, align: 'right', cellsAlign: 'right', cellsFormat: 'n' }
            ]
        });
      });
    </script>
< ?php
 }

add_action( 'admin_footer', array( 'Libstaff_Admin','cp_libstaff_load_javascript') );

此功能实质上打破了Wordpress管理区域中的下拉菜单。例如,在小部件管理页面上,除非我注释掉

,否则活动侧边栏菜单不会展开
jQuery("#emu_libstaff_staff_table").jqxDataTable

我知道JQWidgets应该与Wordpress兼容,所以任何冲突来自何处?

1 个答案:

答案 0 :(得分:0)

我没有在每个管理页面上添加此脚本,而是将JUST设为我需要运行脚本的插件页面。

// load the scripts on only the plugin page titled "library-staff" 
if (isset($_GET['page']) && ($_GET['page'] == 'library-staff')){ 
        add_action( 'admin_footer', array( 'Libstaff_Admin','cp_libstaff_load_javascript') );
}

当脚本仅在此页面上运行时,没有JS冲突。