2013-10-22 68 views
5

我正在研究一個插件,並遇到了一個問題,試圖利用jQuery UI排序。我遵循Codex中的說明,但問題依然存在。 jQuery UI排序功能不起作用,Firebug說TypeError: jQuery(...).sortable is not a function包括jQuery UI排序在WordPress管理頁面

我WordPress的3.6運行,代碼爲:

<?php 
/* 
Plugin Name: Name 
Description: Description 
Version: 0.1 
Author: Bloorchi 
*/ 

add_action('admin_menu', 'my_plugin_admin_menu'); 

function my_plugin_admin_menu() { 
    add_action('admin_print_scripts-' . $page_hook_suffix, 'my_plugin_admin_scripts'); 
    $page_hook_suffix = add_submenu_page('edit.php', 'My Plugin', 'My Plugin', 'manage_options', 'my_plugin-options', 'my_plugin_manage_menu'); 
} 

function my_plugin_admin_scripts() { 
    wp_enqueue_script('jquery-ui-sortable'); 
} 

function my_plugin_manage_menu() { 
?> 
<table id="test"> 
    <tbody> 
     <tr> 
      <td>1</td> 
      <td>2</td> 
     </tr> 
     <tr> 
      <td>3</td> 
      <td>4</td> 
     </tr> 
     <tr> 
      <td>5</td> 
      <td>6</td> 
     </tr> 
    <tbody>  
</table> 
<script> 
    jQuery('table#test tbody').sortable(); 
</script> 
<?php 
} 

回答

4

兩件事情,你有這樣的倒置:

$suffix = add_submenu_page( 
    'edit.php', 
    'My Plugin', 
    'My Plugin', 
    'manage_options', 
    'my_plugin-options', 
    'my_plugin_manage_menu' 
); 
add_action("admin_print_scripts-$suffix", 'my_plugin_admin_scripts'); 

而你需要始終運行jQuery的是這樣的:

<script type="text/javascript"> 
jQuery(document).ready(function($) { 
    $('table#test tbody').sortable(); 
}); 
</script> 
+0

我測試了你的確切代碼與這個國防部隊和工作正常:http://pastebin.com/mXFSR9Bn – brasofilo

0

嘗試禁用所有的插件,並再次嘗試。我有類似的問題,我發現問題是在其中一個插件