質問: trailingslashit( get_bloginfo('wpurl') ).plugindir.'/'. dirname( plugin_basename(__file__) ); if( 'widgets.php' != $hook ) return; wp_register_script( 'my_adminjs_script', plugins_url( '/adminjs.js', __file__ ) ); wp_register_script( 'jqui', 'http://code.jquery.com/ui/1.10.0/jquery-ui.js',false,'' ); wp_register_style( 'jquistyle', 'http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css',false,'' ); wp_enqueue_script('my_adminjs_script'); wp_enqueue_script('jqui'); wp_enqueue_style('jquistyle'); } class my_widget extend wp_widget { //constructor //front end stuff //admin page: function form($instance) { ?> <div id="tabs"> <ul> <li><a href="#tabs-1">nunc tincidunt</a></li> <li><a href="#tabs-2">proin dolor</a></li> <li><a href="#tabs-3">aenean lacinia</a></li> </ul> <div id="tabs-1"> <p>proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. curabitur nec arcu. donec sollicitudin mi sit amet mauris. nam elementum quam ullamcorper ante. etiam aliquet massa et lorem. mauris dapibus lacus auctor risus. aenean tempor ullamcorper leo. vivamus sed magna quis.</p> </div> <div id="tabs-2"> <p>morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. duis scelerisque molestie turpis. sed fringieuismod felis, eu ornare leo nisi vel felis. mauris consectetur tortor et purus.</p> </div> <div id="tabs-3"> <p>mauris eleifend est et turpis. duis id erat. suspendisse potenti. aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lt nec, luctus a, lacus.</p> </div> </div> <?php } } そしてこれは私のjsです:jquery(document).ready(function($) { $( "#tabs" ).tabs(); }); これがどこで問題になっているのか、誰にでもわかりますか?
回答: わかりにくいので、タブを含むdiv要素にはクラスを使用し、idは使用しないようにします以下のように、jquery uiが正しく機能するように。<div class="mytabs"> そしてjquery(document).ready(function($) { $(".mytabs").tabs(); }); 記録のためだけに、私がスクリプトを征服した方法は次のとおりです。add_action( 'admin_enqueue_scripts', 'load_my_admin_js' ); function load_my_admin_js($hook){ if( 'widgets.php' != $hook ) return; wp_register_script( 'my_adminjs_script', plugins_url( '/adminjs.js', __file__ ), array('jquery','jquery-effects-core','jquery-ui-tabs')); wp_enqueue_script('my_adminjs_script'); } おそらく問題は上記の2つの点の組み合わせでした..とにかく、それは今うまくいく