2016-05-16 4 views
0

ich auf diese Weise modal dialouge, habeGibt es eine Möglichkeit, nur 'X' Ereignis aus modalen Dialog mit jQuery zu erfassen?

$("#dialog").dialog({ 
autoOpen: false, 
resizable: false, 
width: 400, 
height: 140, 
modal: true, 
buttons: { 
    "SUBMIT": function() { 
    $(this).dialog("close"); 
    }, 
    "CANCEL": function() { 
    $(this).dialog("close"); 
    } 
}, 
close: function() { 
    alert('close'); 
} 
}); 

Und ich versuche, alert ('close') zu erhalten, sobald i x-Taste des modalen dialouge klicken.

Aber das Problem ist, diese Warnung ('close') wird aufgerufen, auch nach dem Senden Bitton und Cancel Button Klick meines modalen '#dialog'.

Gibt es eine Möglichkeit, dass ich alarmiert werden kann, nur beim Klicken auf "X" Box meines Dialouge und nicht auf Sublit oder Abbrechen Schaltflächen klicken.

Allerdings $ (this) .dialog ("close"); sollte in submit und cancel button events sein.

Wenn ich $ (this) .dialog ("close") entferne; es funktioniert.

Ich möchte nur beim Klicken auf 'X' und nicht auf dem Modal Dialouge schließen.

Kann mir jemand in dieser Ausgabe helfen?

Dank

+0

Ich denke, Sie müssen die Standard-Schließen-Schaltfläche loswerden und fügen Sie Ihre eigenen, und fügen Sie Ihren eigenen Handler dazu. – Barmar

+0

Muss es mit '.dialog()' gemacht werden oder können Sie einfach einen Click-Handler zum 'X' hinzufügen? – 4castle

+0

@ 4castle muss es nur mit .dialog gemacht werden – Sandy

Antwort

0

Die close() Rückruf wird ein Ereignis-Objekt übergeben, die eine .currentTarget Eigenschaft umfasst die Taste repräsentiert, die gedrückt wurde. Sie können damit herausfinden, auf welche Schaltfläche geklickt wurde. Zum Beispiel versuchen, so etwas wie

$("#dialog").dialog({ 
close: function(event,ui) { 
    if($(event.currentTarget).hasClass('ui-dialog-titlebar-close') 
    { 
    alert('close'); 
    } 
} 

könnten Sie auch direkt auf versuchen, eine zu schaffen („Klick“) Funktion direkt auf der X-Taste selbst, aber das kann ein bisschen flockig sein.

Verwandte Themen