0

誰かが助けてくれることを本当に願っています!slideToggle に関する多数の投稿と、一度に 1 つの div のみを表示する方法を見つけましたが、購入した wordpress テーマのこのメニューにそれを実装する方法がわかりません。テーマは次のとおりです: http://themes.themegoods.com/rhea_wp (メニューをハックしたので、面倒なフェード (および音楽) は行われません)。ただし、クリックしてもすべてのメニューが開いたままになることを確認してください。それらは? 以下はメニューのコードです. このコードを編集して一度に 1 つのサブメニューのみを表示することは可能ですか? 別のメイン リンクをクリックしたときに他のメニューを閉じるようにしたい. 多分私は必要ない. slideToggle を使用するには? おそらく、slideUp と slideDown? または他の何か? 私は新しく、クライアントのためにこれをすぐに修正する必要があります! 助けていただければ幸いです!

$j.fn.setNav = function(){
$j('#main_menu li ul').css({display: 'none'});

$j( 'ul#main_menu > li:has( ul li.current-menu-item )' ).each(function()
{   
    $j(this).find('ul.sub-menu').css({overflow:'visible', height:'auto', display:  'block'});
});

$j('ul#main_menu > li:has( ul.sub-menu )').click(function()
{

    var $jsublist = jQuery(this).find('ul:first');
    $jsublist.slideToggle('fast');

    return false;
});

$j('ul#main_menu > li > ul.sub-menu li ').click(function()
{
    var subURL = $j(this).find('a:first').attr('href');
    location.href=subURL;
    return true;
}); }
4

3 に答える 3

0

基になるコードを理解せずにクライアントのテーマをハッキングするべきではないと思います。将来、何かが壊れたり、クライアントが何か新しいものを求めたりしたときに、戻ってきて悩まされるだけです。

それは、この行を変更する簡単なハックとして言った:

$jsublist.slideToggle('fast');

これには、うまくいくかもしれません:

$('ul.sub-menu').slideDown('fast');
$jsublist.slideToggle('fast');
于 2012-06-05T15:20:59.543 に答える
0

解決しました。問題は、テーマが古いバージョンの jQuery (正確には 1.3.2) を使用していたことです。最新バージョンを呼び出すと、メニューは次の変更で機能しました。

$j('ul#main_menu > li:has( ul.sub-menu )').click(function () {
var $jsublist = jQuery(this).find('ul:first');
    $('.visible').slideUp('fast')
    $jsublist.slideToggle('fast').addClass('visible');
return false;
于 2012-06-06T13:45:38.280 に答える
0

.live または .on を試してください

http://api.jquery.com/live/

http://api.jquery.com/on/

于 2012-06-04T18:19:03.297 に答える