2013-05-16 5 views
1

Il est encore moi: DExpand Catégorie de MyBB au sein jQuery

Comme vous le savez (ou ne pas savoir), MyBB utilisant Prototype à Expande table forum. Mais je suis en train de coder et de concevoir un nouveau thème pour mon forum n'utilisant pas la table, yup, un thème de div complet pour MyBB. Pour cette raison, je ne peux pas utiliser la fonction d'expansion déjà intégrée de MyBB, qui est la conception pour les tables.

Voici mon code pour développer/réduire la catégorie de forum.

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'); 
    }); 
} 

Le code 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> 

Et oui, le code précédent ne fonctionnait. Il travaille seulement si j'utiliser ce jquery dans le événement onclick

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

Si j'utilise l'événement onclick donc je ne peux pas configurer le cookie pour sauvegarder extensible courant pour les utilisateurs.

J'ai besoin de vos conseils, les gars.

Merci d'avance!

+0

Ce 'jQuery (this) .toggleClass toggleClass (.-Parent forum ') (' effondrées-parent forum. ');.' Est pas correct. Ce devrait être juste 'jQuery (this) .toggleClass ('forum-parent effondré');' –

Répondre

1

Essayez de remplacer votre code Javascript par celui-ci. J'espère que ça peut aider.

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'); 
    } 
} 
+0

Oui, je viens de le remarquer il y a quelques minutes. Mais il semble que la fonction click() soit en conflit avec l'événement onclick. Avez-vous une solution pour résoudre cela? Je suis noob en javascript beaucoup :( – LCTG