2015-05-27 26 views
0

我在自定義Wordpress(v。4.2.2)插件中使用JQWidgets 3.8.0,即jqxDataTable功能。在我的插件中,我有以下功能:JQwidget WordPress的管理區域中的JQuery衝突

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所以其中的矛盾是來自任何想法兼容?

回答

0

我沒有在每個管理頁面上添加這個腳本,而是定位了我需要腳本運行的插件的頁面。

// 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衝突。