使用.load()后,UI模式对话框无法打开

时间:2012-09-07 17:57:27

标签: jquery struts

从数据库中删除记录时,我的删除UI对话框出现问题。单击图像时,应显示确认对话框,例如,如果用户点击“oui”。删除记录后我必须刷新表,所以为此目的使用 .load(“url”)。 问题是使用 .load()后无法打开对话框! 这是我的代码(它是javascript):

(function(a){a(document).ready(function(c)
{
//avec ce variable je recupere l'identificateur que je dois utilisé pour la suppresion et 
//l'edition de jour ferié
var id;
a("#da-ex-dialog-div").dialog(
{autoOpen:false,
title:"Confirmation de suppression",
modal:true,
width:"340",
resizable: false,
buttons:[{text:"Oui",click:function(){a.ajax({type: "POST", cache: false,url:"/Pointagesgtt/deletejourferie?id="+id,success:function(){ a(".da-panel-content").load("/Pointagesgtt/listejourferie .da-table");alert("reusii");}});a(this).dialog("close");}},{text:"Non",click:function(){a(this).dialog("close");}}]
});
a("#da-ex-dialog-form-div").dialog(
{autoOpen:false,
title:"Edition jour férié",
modal:true,
width:"640",
buttons:[{text:"Valider",click:function(){a(this).find("form#da-ex-dialog-form-val").submit();}}]
}).find("#da-ex-dialog-dp").datepicker({dateFormat:"dd/mm/yy"}).end().find("form").validate({rules:{"jourferie.date":{required:true,date:true},"jourferie.occasion":{required:true},"jourferie.nombrejours":{required:true,digits:true,max:40}},invalidHandler:function(f,d){var g=d.numberOfInvalids();if(g){var e=g==1?"Vous avez manqué 1 champ.  Il a été mis en évidence":"Vous avez manqué "+g+" champs. Ils ont été mis en évidence";a("#da-validate-error").html(e).show();}else{a("#da-validate-error").hide();}}});a(".da-ex-dialog-modal").bind("click",function(d){a("#da-ex-dialog-div").dialog("option",{modal:true}).dialog("open");d.preventDefault();/* la recuperation de ligne selectionné*/ id=a(this).closest("tr").attr("id");});a(".da-ex-dialog-form").bind("click",function(d){a("#da-ex-dialog-form-div").dialog("option",{modal:true}).dialog("open");d.preventDefault();});
});

}

)(jQuery);

我的JSP页面片段:

<!-- Main Content Wrapper -->
                <div id="da-content-wrap" class="clearfix">

                    <!-- Content Area -->
                    <div id="da-content-area">

                     <div class="grid_4">
                            <div class="da-panel collapsible">
                                <div class="da-panel-header">
                                    <span class="da-panel-title">
                                        <img src="images/icons/black/16/list.png" alt="" />
                                        Les Jours Fériés
                                    </span>

                                </div>
                                <div class="da-panel-content">
                                    <table class="da-table">
                                        <thead>
                                            <tr>

                                                <th>Date</th>
                                                <th>Occasion</th>
                                                <th>Nombrejours</th>

                                                <th></th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                        <s:iterator value="listejourferie" var="jourferie">
                                            <tr id="<s:property value="jourferieId"/>">

                                                <td><s:property value="date"/></td>
                                                <td><s:property value="occasion"/></td>
                                                <td><s:property value="nombrejours"/></td>

                                                <td class="da-icon-column">

                                                    <a  href="#"><img class="da-ex-dialog-form" src="images/icons/color/pencil.png" /></a>
                                                    <a  href="#"><img class="da-ex-dialog-modal" src="images/icons/color/cross.png" /></a>
                                                </td>
                                            </tr>

                                          </s:iterator>  
                                        </tbody>
                                    </table>
                                </div>

                              <!-- Confirmation dialog --> 

         <div id="da-ex-dialog-div" style="display:none;">
                 <p>Cet élément sera définitivement supprimé et ne peut pas être récupéré. Etes-vous sûr?</p> 
         </div> 

                              <!--End confirmation dialog  -->

                              <!-- Edit form dialog -->

                               <div id="da-ex-dialog-form-div" class="no-padding">
                                        <form id="da-ex-dialog-form-val" class="da-form">
                                            <div id="da-validate-error" class="da-message error" style="display:none;"></div>
                                            <div class="da-form-inline">
                                               <div class="da-form-row">
                                                    <label>Date<span class="required">*</span></label>
                                                    <div class="da-form-item small">
                                                     <s:textfield id="da-ex-dialog-dp" name="jourferie.date"  readonly="true"/>
                                                    </div>
                                                </div>


                                                <div class="da-form-row">
                                                <label>Nombre de jours<span class="required">*</span></label>
                                                <div class="da-form-item small">
                                                    <s:textfield name="jourferie.nombrejours" />
                                                </div>
                                               </div>

                                               <div class="da-form-row">
                                                <label>Occasion<span class="required">*</span></label>
                                                <div class="da-form-item">
                                                    <s:textfield  name="jourferie.occasion" />
                                                </div>
                                               </div>

                                            </div>
                                        </form>
                                    </div>                                   
                              <!-- End edit dialog -->  
                            </div>
                        </div>                                                  
                    </div>                        
                </div>                    
            </div>                
        </div>

        <!-- Footer -->
        <div id="da-footer">
            <div class="da-container clearfix">
                <p>Copyright 2012. CandySoft. Tous droits réservés.
            </div>
        </div>            
    </div>

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这可能会发生,因为您正在加载用于显示对话框的元素。解决方案是使用.live如果您使用jQuery bellow 1.7或委托on,如果不是:

// jQuery < 1.7
a(".da-ex-dialog-modal").live("click",function(d){
    a("#da-ex-dialog-div").dialog("option",{modal:true}).dialog("open");
    d.preventDefault();
});

// jQuery >= 1.7
// You can use `document` or a parent elements that you doesn't load it with AJAX
// to delegate the event
a("#da-content-area").on("click", ".da-ex-dialog-modal", function(d){
    a("#da-ex-dialog-div").dialog("option",{modal:true}).dialog("open");
    d.preventDefault();
});