1

また私です :D

ご存じのように (またはご存知ないかもしれませんが)、MyBB はプロトタイプを使用してフォーラム テーブルを拡張しています。しかし、私は自分のフォーラムの新しいテーマをコーディングして設計しています。テーブルを使用していません。はい、MyBB の完全な div テーマです。

そのため、テーブル用に設計されたMyBBの組み込み拡張機能を使用できません。

これは、フォーラム カテゴリを展開/折りたたむための私のコードです。

Javascript :

jQuery.noConflict();

function toggleForums(catId) {
    var forumCategoryId = "#cat_" + catId;

    jQuery(forumCategoryId).click(function() {
        jQuery(this).next().toggle();
    });

    jQuery(forumCategoryId).click(function() {
        jQuery(this).toggleClass('.forum-parent collapsed').toggleClass('.forum-parent');
    });
}

HTML (forumbit_depth_1_cat)

<a id="cat_{$forum['fid']}" href="javascript:;" class="forum-parent" onclick="toggleForums({$forum['fid']});">{$forum['name']}</a>
<div class="child-forums" name="cat_{$forum['fid']}" id="cat_{$forum['fid']}_e" style="{$expdisplay}">
<div class="forums-list">
{$sub_forums}
</div> <!-- /end forums-list -->
</div> <!-- /end child-forums -->
<span class="clear"></span>

はい、前のコードは機能しません。onclickイベントでこのjqueryを使用した場合にのみ機能します

onclick="jQuery(this).next().toggle();jQuery(this).toggleClass('.forum-parent collapsed').toggleClass('.forum-parent');"

onclick イベントを使用すると、Cookie を設定してユーザーの現在の拡張可能ファイルを保存できません。

皆さん、アドバイスが必要です。

ありがとうございます!

4

1 に答える 1

1

Javascript コードをこれに置き換えてみてください。それが役立つことを願っています。

function toggleForums(catId) {
    var lctgCategory = "#cat_" + catId;

    if (jQuery(lctgCategory).hasClass('collapsed')) {
        jQuery.cookie("catStatus","collapsed",{expires: 365});
    } else {
        jQuery.cookie("catStatus","expanded",{expires: 365});
    }

    if (jQuery.cookie("catStatus") == "collapsed") {
        jQuery(lctgCategory).next().show();
        jQuery(lctgCategory).toggleClass('collapsed');
    } else {
        jQuery(lctgCategory).next().hide();
        jQuery(lctgCategory).toggleClass('collapsed');
    }
}
于 2016-04-14T09:19:25.137 に答える