【问题标题】:Expand Category in MyBB within jQuery在 jQuery 中展开 MyBB 中的类别
【发布时间】:2013-05-11 16:43:05
【问题描述】:

又是我 :D

如您所知(或不知道),MyBB 使用 Prototype 来扩展论坛表格。但是我正在为我的论坛编写代码并设计一个新主题,而不是使用表格,是的,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 来为用户保存当前的展开式。

伙计们,我需要你的建议。

提前致谢!

【问题讨论】:

  • 这个jQuery(this).toggleClass('.forum-parent collapsed').toggleClass('.forum-parent'); 不正确。应该只是jQuery(this).toggleClass('forum-parent collapsed');

标签: jquery expand collapse mybb


【解决方案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');
    }
}

【讨论】:

  • 是的,我在几分钟前才注意到。但似乎 click() 函数与 onclick 事件冲突。你有解决方案吗?我是javascript的菜鸟:(
猜你喜欢
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 2017-07-20
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
相关资源
最近更新 更多