2010-08-27 7 views
0

Comment transmettre des éléments à la fonction jQuery "ready()" dans Joomla?Fonction de chargement de la page Joomla

$(document).ready(function(){ 
    // some code... 
}); 

J'utilise déjà cette fonction et la plupart des éléments qu'il sera statique (ne changera pas en fonction des modules, etc.). Cependant, dans certains cas, je dois "injecter" du code supplémentaire dans cette fonction.

En particulier, j'ai une fonction JS personnalisée qui définit l'image d'arrière-plan d'un élément et il est appelé dans cette fonction, comme ceci:

// Set background of element with ID and image path. 
setBackgroundImage("img-2","global/img/rotator/ourstate.jpg"); 

Ce sera dans un module. Comment puis-je transmettre cela dans la fonction jQuery ready() dans Joomla? Merci.

+0

Cet article aide: http://www.learningjquery.com/2006/09/multiple-document-ready Vous pouvez avoir plusieurs fonctions $ (document) .ready() sur une page; Je pensais que vous deviez mettre tout cela en un seul appel. Donc, je vais juste ajouter le code nécessaire dans le PHP. – Alex

+0

Vous pouvez répondre à votre propre question ici et après deux jours sélectionnez-le comme le meilleur. Je suggère de faire cela pour que les gens puissent voir sur d'autres pages que cela a déjà été répondu. –

Répondre

2

Il n'y a pas de paramètres pour prêt.

Ce que vous devez faire est de définir la valeur pour un élément d'entrée caché (avec ID connu) dans votre module. Votre module devrait générer le JS et l'ajouter à l'élément head. Dans le code JS, obtenez la valeur du champ caché et faites ce que vous devez faire.

Par exemple:

--- MODULE (TEMPLATE)
....code before...

<!-- Un-submittable form ---> 
<form action="#" method="post" onsubmit="return false;"> 
    <input type="hidden" id="myBgImg" value="<?php echo 'image.jpg'; ?>" /> 
</form> 


<?php 
    $js = ' 
      $(document).ready(function() { 
       // Get Image 
       var img = $("#myBgImg").value; 
       if (img != ""){ 
        // Set background of element with ID and image path. 
        setBackgroundImage("img-2","global/img/rotator/" + img); 
       } 
      });'; 

    JFactory::getDocument()->addScriptDeclaration($js); 
?> 

....code after...

Je vois que vous voulez utiliser rotateurs, donc je suppose que vous voulez charger plusieurs images et les changer au fil du temps .... Vous pouvez définir la valeur myBgImg à la liste json encoded [en php utiliser la méthode json_encode()] et la décoder avec JQuery http://api.jquery.com/jQuery.parseJSON/

+0

y at-il un point dans ' '? – RobertPitt

+1

* Y a-t-il un point dans * Eh bien cela dépend, si vous voulez que votre valeur soit statique alors non, mais si vous voulez qu'il soit option configurable (paramètre chassera) puis YES - mod_mymodule.xml - mod_mymodule.php Alex