2012-06-25 7 views
11

Ich versuche, den Hintergrund mit meinen zwei jquery modalen Dialogen zu blockieren, bis der Benutzer das Fenster schließt. Irgendeine Idee, wie man das erreicht?Blockieren von Hintergrundinhalten und Fokus auf modalen Dialog

Indem ich den Hintergrund blockiere, meine ich die Deaktivierung der anderen Elemente auf der Seite (d. H. Andere Elemente nicht anklickbar machen).

Hier ist mein Code unten:

  // sign up dialog 
     $("#aboutus_dialog").dialog({ 
      autoOpen: false, 
      show: "fadein", 
      hide: "fadeout" 
     }); 

     // sign up dialog 
     $("#signup_dialog").dialog({ 
      autoOpen: false, 
      show: "fadein", 
      hide: "fadeout" 
     });  

     // about us modal 
     $('#aboutus').click(function() { 
      modal: true, 
      $("#aboutus_dialog").dialog("open"); 
      return false; 
     }); 

     // about us modal 
     $('#signup').click(function() { 
      $("#signup_dialog").dialog("open"); 
      return false; 
     }); 
    }); 
+0

Mit „den Hintergrund blockieren“ meinen Sie die anderen Elemente auf der Seite deaktivieren (das heißt andere Elemente anklickbar machen)? Wenn ja, haben Sie sich die [modale] Option angesehen (http://jqueryui.com/demos/dialog/#option-modal)? –

+0

Ja @Colin lassen Sie mich meine Frage aktualisieren, um das zu enthalten! – methuselah

Antwort

9

Ist das, was Sie suchen den Hintergrund Sie die Ansicht Quellentaste haben

http://jqueryui.com/demos/dialog/#modal

Es tut blockieren. Hast du irgendeine Überlagerung?

Probieren Sie es manuell (nicht empfohlen, sondern Trog css) Einstellung:

$(".ui-widget-overlay").attr('style','background-color: #000; opacity:1; z-index:1000;'); 

Und natürlich die modale Option auf true setzen.

Wenn die Farbe zu stark ist, verringern Sie die Opazität entsprechend.

+0

Vielen Dank. Wie würde ich es auf meinen obigen Code anwenden? Wo setze ich die modale Option auf wahr und setze das Overlay manuell? – methuselah

1

Schauen Sie sich die Dialogoptionen in der API an, es gibt einige. Neben modal, die blockiert Mausereignisse ein Overlay über Seite setzt, gibt es auch closeOnEscape, die gesetzt, wenn auf false Benutzer nicht zulässt, dass Escape-Taste auf der Tastatur schlagen Dialog zu schließen und damit mit Dialogelementen direkt zu interagieren hat

Es wird eine signifikante API in die Registerkarten auf Demo-Seite versteckt http://jqueryui.com/demos/dialog/

4

wenn ich modalen Wert auf ‚true‘ geändert (in Winkel js) Alle bekamen Hintergrundelemente disabled.here ist mein Code angehängt:

var options = { 
        autoOpen : false, 
        modal : true, 
        close : function(event, ui) { 
         console.log("Predefined close"); 
        } 
       }; 

    dialogService.open("myDialog" + k, "dialogTemplateload.html", model, options) 
    .then(
      function(result) { 
       console.log("Close"); 
       console.log(result); 
      }, 
      function(error) { 
       console.log("Cancelled"); 
      } 
     ); 
0

Versuchen Sie, mit Jquery's Motivroller Ihr eigenes Thema zu erstellen. Es hilft auch bei der Funktionalität des modal und andere Widgets innerhalb JQuery UI-Bibliothek

+1

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/10774905) – Blastfurnace

+0

Unter normalen Umständen hätten Sie Recht, Link-Only-Antworten sind nicht geeignet. Dieser Link ist jedoch selbsterklärend, unter normalen Umständen würde ich einige Minuten erklären. Es scheint redundant zu sein zu erklären, wie Theme Roller zu verwenden ist sehr einfach zu verstehen. Außerdem, wenn Sie oben einen Link von jQuery Website-Kommentar aus dem Jahr 2012 schauen, ist dieser Link noch gültig. Bitte lassen Sie sich nicht mit jQuery durcheinander bringen, der Ihr täglicher Blog ist, in dem Links fehlen. – luziio

Verwandte Themen