如何将项目传递给 Joomla 中的 jQuery 函数“ready()”?
$(document).ready(function(){
// some code...
});
我已经在使用这个函数,其中的大多数项目都是静态的(不会根据模块等而改变)。但是,在某些情况下,我需要向此函数“注入(inject)”额外的代码。
特别是,我有一个自定义 JS 函数,用于设置元素的背景图像,并在此函数中调用它,如下所示:
// Set background of element with ID and image path.
setBackgroundImage("img-2","global/img/rotator/ourstate.jpg");
这将位于一个模块中。如何将其传递到 Joomla 中的 jQuery Ready() 函数中?谢谢。
最佳答案
没有就绪参数。
您需要做的是为模块中的某些隐藏输入元素(具有已知 ID)设置值。您的模块应该生成 JS 并将其添加到 head 元素。在JS代码中,获取隐藏字段的值并执行您需要执行的操作。
例如:
--- 模块(模板)
....之前的代码...
<!-- 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);
?>
....之后的代码...
我看到你想使用旋转器,所以我假设你想加载多个图像并随着时间的推移更改它们......你可以将 myBgImg 值设置为 json 编码列表 [在 php 中使用 json_encode() 方法] 并使用 JQuery 对其进行解码 http://api.jquery.com/jQuery.parseJSON/
关于javascript - Joomla页面加载功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3586488/