我有/只能有一个Jquery对话框。该对话框向用户提供一些广告内容。 在阅读时,用户可以利用该提议或暂时忽略它。
用户可以通过单击对话框中的“提交”按钮来获取该优惠。 或者他可以通过点击"稍后提醒我"来忽略它。将关闭对话框的链接。 对话框内的内容通过Ajax更新。所以当点击提交按钮时, 感谢信息显示在同一个对话框中。
当用户提供优惠时,"稍后提醒我"链接仍然存在。如果用户在逻辑上单击该对话框 框应该再次显示。但是,用户已经使用了该优惠!
如何以编程方式呈现或不呈现Jquery对话框的关闭链接?
对话框代码如下,
$h(document).ready(function() {
$h("#showForm").dialog({
open: function(event, ui) {
jQuery('.ui-dialog-titlebar-close').html('<span>Remind me later</span>');
jQuery('.ui-dialog-content').removeClass("ui-dialog-content").addClass("advertise-upgrade-content");
},
duration: 800,
height: 727,
minWidth: 811,
width: 811,
position: ['middle', 154],
zIndex: 99999999,
modal: true,
show: {
effect: 'puff',
duration: 400
},
hide: {
effect: 'puff',
duration: 400
}
});
});
<div id="showForm" height: 670px;">
<div class="submitClass">
<a4j:commandLink immediate="true" action="#{myBean.clickToAvail}" reRender="renderSuccess" value="Submit">
</a4j:commandLink>
</div>
<h:panelGroup id="renderSuccess">
<h:outputText value="Thank you for availing this offer">
</h:panelGroup>
</div>
使用jquery.min.js
,jquery-1.6.2.js
,jquery-ui.min.js
。
答案 0 :(得分:2)
在open
函数中,进行逻辑检查Thank you
消息容器是否可见(假设只有在用户提供了优惠时才可见)并且如果它可见,则隐藏{{1} (在你的情况下''稍后提醒我)或者,显示它。
此外,您正在使用非常通用的代码来操纵close
中对话的属性。您应该使用open
变量来使您的代码仅针对当前对话框
有关ui
操作和close
变量的示例用法
编辑:进行四次更改
1)给跨度
一个idNB:此仍然需要特定于此对话框。请参考上面提到的主题。
ui
稍后');
2)在bean中定义一个布尔变量,说jQuery('.ui-dialog-titlebar-close').html('<span id=\'reminder\'>Remind me
,并在availed
方法中设置
clickToAvail
3)使用public void clickToAvail(){
// business logic here
this.availed = true;
}
和data
oncomplete
4)在您网页的<a4j:commandLink immediate="true" action="#{myBean.clickToAvail}" data="#{myBean.availed}" reRender="renderSuccess" value="Submit" oncomplete="removeReminder(event.data);">
</a4j:commandLink>
中定义removeReminder
javascript功能
<head>