如何将项目传递给Joomla中的jQuery函数“ready()”?
$(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 :(得分:2)
ready 没有参数。
您需要做的是为模块中的某些隐藏输入元素(具有已知ID)设置值。您的模块应生成JS并将其添加到head元素。在JS代码中,获取隐藏字段的值并执行您需要执行的操作。
例如:
--- MODULE(模板)
....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...
我看到你想要使用rotator,所以我假设你想加载多个图像并随着时间的推移改变它们....你可以将myBgImg值设置为json编码列表[在php中使用json_encode()方法]和使用JQuery http://api.jquery.com/jQuery.parseJSON/
解码它