如何渲染/不渲染关闭Jquery对话框的链接?

时间:2013-05-10 03:49:06

标签: ajax jsf jquery

我有/只能有一个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.jsjquery-1.6.2.jsjquery-ui.min.js

1 个答案:

答案 0 :(得分:2)

open函数中,进行逻辑检查Thank you消息容器是否可见(假设只有在用户提供了优惠时才可见)并且如果它可见,则隐藏{{1} (在你的情况下''稍后提醒我)或者,显示它。

此外,您正在使用非常通用的代码来操纵close中对话的属性。您应该使用open变量来使您的代码仅针对当前对话框

有关ui操作和close变量的示例用法

,请参阅this thread

编辑:进行四次更改

1)给跨度

一个id

NB:仍然需要特定于此对话框。请参考上面提到的主题。

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>