Oto mój jQuery dla okna dialogowego

</script>
<script type="text/javascript">
    $.ajaxSetup({ cache: false });
    $(document).ready(function () {
        $(".openDialog").live("click", function (e) {
            e.preventDefault();
            $("<div></div>")
            .addClass("dialog")
            .attr("id", $(this)
                .attr("data-dialog-id"))
            .appendTo("body")
            .dialog({
                title: $(this).attr("data-dialog-title"),
                minWidth: 200,
                minHeight: 100,
                resizable: false,
                close: function () { $(this).remove() },
                modal: true
//                        buttons:{ 
//                            close:function(e){
//                               e.preventdefault();
//                               $(this).closest(".dialog").dialog("close"); 
//                            }}
            })
            .load(this.href);
        });
        $(".close").live("click", function (e) {
            e.preventDefault();                  
            $(this).closest(".dialog").dialog("close");
        });
        $(".refresh").live("click", function (e) {
            e.preventDefault();
            location.reload();
        });
    });          
</script>

A oto mój widok usunięcia

@using (Html.BeginForm()) {
    <div>
    <p>Are you sure you want to delete?</p>
       @Html.HiddenFor(model=>model.UId)
   <table border=0>
    <tr>
   <td>Name:</td>
    <td>@Html.DisplayFor(model =>model.FName)
    @Html.DisplayFor(model => model.LName)</td>
    </tr>
    <tr>
    <td>PAddress:</td>
    <td>@Html.DisplayFor(model => model.PAddress)</td>                                        

    </tr>
    </table>
     <input type="submit" value="Yes"/>
    <button  class="close">No</button>


 </div>
}

Problem polega na tym, kiedy wywołuję klasę bliskiej z przycisku Okno dialogowe nie jest zamykane Każda pomoc proszę, dlaczego okno dialogowe nie zamyka się.

4
Sanjay Maharjan 26 lipiec 2012, 09:30

6 odpowiedzi

Najlepsza odpowiedź
$(".close").live("click", function (e) { 
    e.preventDefault();                   
    $('#yourdivId').closest(".dialog").dialog("close"); 
}); 

Spróbuj tego...

2
Suraj Shrestha 16 sierpień 2012, 15:25

Czy możesz spróbować tego

$(".close").live("click", function (e) {
                e.preventDefault();                  
                $(this).closest(".dialog").dialog("close");
            });

Umieść ten kod

$(document).ready(function () {

To może działać dla Ciebie ...

1
Hiren Soni 26 lipiec 2012, 05:36

Tutaj nie musisz nie być Urządzeniem użytkownika () Funkcji. zapobiegania () służy do zapobiegania niepożądanemu domyślnym działaniu zdarzenia.

Jako przykład, po kliknięciu łącza, przekieruje cię na inną stronę. Jeśli chcesz, aby ten link zrobił coś innego, musisz zapobiec domyślnie i napisać swoją akcję.

Ponieważ ten przycisk nie ma czynności domyślnej (zdefiniowanej z atrybutem "Typ"), nie musisz używać zapobieganiaDefault ().

1
Lasantha Bandara 26 lipiec 2012, 05:43

Przede wszystkim umieścisz $.ajaxSetup({ cache: false }); w funkcji gotowości dokumentu.

1
defau1t 26 lipiec 2012, 05:46

Możesz zmienić swój widok usunięcia w ten sposób.

<div>
@using (Html.BeginForm()) {
   <p>Are you sure you want to delete?</p>
       @Html.HiddenFor(model=>model.UId)
   <table border=0>
    <tr>
   <td>Name:</td>
    <td>@Html.DisplayFor(model =>model.FName)
    @Html.DisplayFor(model => model.LName)</td>
    </tr>
    <tr>
    <td>PAddress:</td>
    <td>@Html.DisplayFor(model => model.PAddress)</td>                                        

    </tr>
    </table>
     <input type="submit" value="Yes"/>
}
<button  class="close">No</button>
</div>
1
Lasantha Bandara 31 lipiec 2012, 05:22
 $(".ui-dialog").hide();
    $(".ui-widget-overlay").hide();
1
Andro Selva 19 październik 2012, 12:40