2012-06-25 13 views
11

Próbuję zablokować tło za pomocą moich dwóch dialogów modalnych jquery, dopóki użytkownik nie zamknie okna. Masz pomysł, jak to osiągnąć?Blokowanie treści tła i fokus na modalnym oknie dialogowym

Przez "blokowanie tła" rozumiem wyłączenie innych elementów na stronie (tj. Uniemożliwianie innych elementów).

Oto mój kod poniżej:

  // 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

Przez „blokować tle” masz na myśli wyłączyć inne elementy na stronie (tj zmusić inne elementy unclickable)? Jeśli tak, czy spojrzałeś na opcję ['modal'] (http://jqueryui.com/demos/dialog/#option-modal)? –

+0

Tak @Colin pozwól mi zaktualizować moje pytanie, aby to uwzględnić! – methuselah

Odpowiedz

9

Czy tego szukasz

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

Czyni zablokować tło masz przycisk View Source. Czy masz w ogóle jakąś nakładkę?

Spróbuj ustawić go ręcznie (nie zalecane, ale raczej koryta css):

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

I oczywiście zachodzącego modalne opcję true.

Jeśli kolor jest zbyt duży, zmniejsz odpowiednio nieprzezroczystość.

+0

Dziękuję bardzo. Jak zastosować go do powyższego kodu? Gdzie ustawić opcję modalną na true i ręcznie ustawić nakładkę? – methuselah

1

Przejrzyj opcje dialogowe w interfejsie API, jest ich sporo. Oprócz modal, która ustawia nakładkę na stronie blokującej zdarzenia myszy, istnieje również closeOnEscape, która, jeśli jest ustawiona na false, nie pozwala użytkownikowi na naciśnięcie klawisza Escape na klawiaturze w celu zamknięcia okna i dlatego musi bezpośrednio współpracować z formantami w oknie dialogowym.

istnieje znacząca API schowany w zakładkach na stronie demo http://jqueryui.com/demos/dialog/

4

kiedy zmienił wartość modalna na „true” (w kanciastych js) wszystkie elementy tła dostał disabled.here jest mój kod dołączony:

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

Spróbuj stworzyć swój własny motyw za pomocą rolki motywu JQuery. Pomaga również w funkcjonalności modal i inne wzory wewnątrz biblioteki jQuery UI

+1

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać odnośnik. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ recenzja/niskiej jakości-posts/10774905) – Blastfurnace

+0

W normalnych okolicznościach miałbyś rację, odpowiedzi tylko link nie są odpowiednie. Jednak ten link jest oczywisty, w normalnych okolicznościach poświęciłbym kilka minut na wyjaśnienie. Wydaje się zbyteczne, aby wyjaśnić, w jaki sposób używać walca tematycznego, co jest bardzo łatwe do zrozumienia. Poza tym jeśli spojrzysz powyżej na link z witryny jQuery - komentarz z 2012 roku, ten link jest nadal ważny. Nie mieszaj się do tego, że jQuery jest Twoim codziennym blogiem, na którym brakuje linków. – luziio

Powiązane problemy