又是我:D
如你所知(或不知道),MyBB使用Prototype扩展论坛表。但是我正在为我的论坛编写和设计一个新的主题,而不是使用表格,是的,一个完整的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来保存当前可扩展的用户
我需要你们的建议,伙计们。
提前感谢!
试着用下面的代码替换你的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');
}
}