2010-08-27 126 views
0

如何將項目傳遞給Joomla中的jQuery函數「ready()」?Joomla頁面加載函數

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

我已經使用這個功能,在它的大部分項目將是靜態的(不會改變基於模塊等)。但是,在某些情況下,我需要將其他代碼「注入」到這個函數中。

特別是,我有一個自定義JS功能設置元素的背景圖片,這就是所謂的這個功能,像這樣:

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

這將是一個模塊中。如何將它傳遞給Joomla中的jQuery ready()函數?謝謝。

+0

本文有幫助:http://www.learningjquery.com/2006/09/multiple-document-ready 在頁面上可以有多個$(document).ready()函數;我以爲你必須把它全部放在一個電話裏。所以我只需在PHP中添加必要的代碼。 – Alex 2010-08-27 19:43:41

+0

你可以在這裏回答你自己的問題,兩天後選擇它作爲最好的問題。我建議這樣做,以便人們可以在其他網頁上看到這已經得到解答。 – 2010-08-28 01:16:48

回答

2

準備好沒有參數。

您需要做的是爲模塊中的某個隱藏輸入元素(具有已知ID)設置值。你的模塊應該生成JS並將其添加到head元素。在JS代碼中,獲取隱藏字段的值,並執行您需要執行的操作。

例如:

---模塊(模板)
....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...

我看你想使用轉子,所以我想你想加載多個圖像,並隨着時間的推移改變它們....您可以將myBgImg值設置爲json編碼列表[在php中使用json_encode()方法]並使用JQuery對其進行解碼

+0

有沒有在'<?php echo'image.jpg'中的任何一點? ?>'? – RobertPitt 2010-08-30 13:19:56

+1

*是否有<?php echo'image.jpg'中的任何一點? ?> * 那麼這取決於,如果你想你的價值是靜態的則沒有,但如果你希望它是可配置的選項(參數驅動),然後是 - mod_mymodule.xml <選項值= 「爲Flower.jpg」>花 - ? mod_mymodule.php get('bgImage','default.jpg'); ?>「/> – Alex 2010-08-30 16:14:21