2010-02-08 3 views
1

J'utilise JQuery 1.3.2 et la version UI 1.7 et Drupal 6.15Faire un travail d'accordéon JQuery UI sans structure appropriée HTML (drupal)

Je voudrais faire un accordéon en utilisant la sortie HTML à partir de vues modual. J'ai modifié le fichier .tpl.php pour afficher le format utilisable <h2></h2><div></div>,<h2></h2><div></div>.... Cependant, le module Views enveloppe la sortie dans un autre <div>, qui ressemble à ceci:

<div class="views-row views-row-1 views-row-odd views-row-first"> 

     <h2>...</h2> 

     <div class="content clearfix">...</div> 

    </div> 
    <div class="views-row views-row-2 views-row-even"> 

     <h2>...</h2> 

     <div class="content clearfix">...</div> 

    </div> 

Donc, fondamentalement, les balises que je veux sont enveloppées dans une <div> problématique.

J'ai pensé à la méthode JQuery 1.4 element.unwrap(), mais 1.4 provoque des problèmes avec Drupal 6.15 (appels AJAX échoués). Vues ne fournit pas toutes les variables utiles en plus $rows qui contient la totalité de la production HTML

Répondre

6

Le div supplémentaire ne devrait pas poser un problème (à moins que CSS salit vers le haut), on crée un juste un peu différent:

$("#container_id").accordion({ header: '> div > h2'}); 

(Où #container est la div qui enveloppe à la fois votre code et les divs parent supplémentaires)

S'il vous plaît see this example Je ai mis ensemble montrant que cela fonctionne comme prévu. Vous pouvez voir la source pour le example here.

0

L'autre alternative consiste à remplacer le modèle de vues.

  1. Pendant la rédaction du point de vue, cliquez sur Thème: Informations
  2. Regardez la liste des fichiers de modèle étant utilisé
  3. ouvrir les/sites/all/vues dossier et regarder dans ces modèles pour savoir lequel envoie la problématique div
  4. Copier ce modèle dans le répertoire de votre thème
  5. Modifier tout ce que vous devez (dans ce cas, retirez le div)
  6. Flush le registre de thème Drupal et le balisage devrait être comme vous le souhaitez.

Ce n'est pas un hack; Le remplacement de .tpl.php est une pratique encouragée dans Drupal.

Je serais d'accord que le simple changement du sélecteur jQuery serait plus facile et meilleur, mais c'est juste une alternative à prendre en compte.

Questions connexes