我在“轮播”中有一个名为“添加按钮”的复选框项,要求是当某人选中“添加按钮”复选框时,按钮文本和按钮链接才可见。
这里的问题是,当我尝试选中“添加按钮”复选框时,自动在每个轮播项目中出现btntext和buttonLink,
如以下AEM论坛中的图片所示
https://forums.adobe.com/message/10876269#10876269
您可以在最后一张图片中看到第二项,尽管未选中“添加按钮”,但仍然有按钮文字出现。
请帮助我。
我的Java脚本在没有轮播的情况下工作正常。但是在轮播中,效果不佳
/ ************************** cq.dialog ***************** *** /
jcr:primaryType =“ nt:unstructured”
sling:resourceType =“ granite / ui / components / coral / foundation / form / checkbox”
name="./includebutton"
text="Add button (bottom)"
value="{Boolean}true"/>
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
fieldLabel="Button Text"
name="./btntext"/>
<link
jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/pathbrowser"
fieldLabel="Button Link"
name="./link"
rootPath="/content/Sunita"/>
以下是此要求的HTL和JS。
/ ************************* HTL ******************** *** /
$ {item.btntext} $ {item.btntext}/ ************************* JS ******************** *** /
(函数($,$ document){
$document.ready(function () {
$document.on("dialog-ready", function() {
if($("coral-checkbox[name='./includebutton'] :checked").length === 1){
$("input[name='./btntext']").parent().show();
$("input[name='./buttonLink']").parent().show();
} else {
$("input[name='./btntext']").parent().hide();
$("input[name='./buttonLink']").parent().hide();
}
$("coral-checkbox[name='./includebutton']").on("click", function() {
if($("coral-checkbox[name='./includebutton'] :checked").length === 1){
$("input[name='./btntext']").parent().show();
$("input[name='./buttonLink']").parent().show();
} else {
$("input[name='./btntext']").parent().hide();
$("input[name='./buttonLink']").parent().hide();
}
});
});
});
}(jQuery,jQuery(文档)));