2010-10-25 9 views
5

Ich habe dieses Plugin wurde über die Benutzeroberfläche zu blockieren: http://jquery.malsup.com/block/Wie blockiere ich die Benutzeroberfläche mit JQuery UI?

Das Plugin funktioniert hervorragend, es ist nur, dass ich nicht schon so etwas zu tun hat, wenn jQuery UI enorm wäre überrascht, da es tun müssen Das Gleiche gilt für die Dialog-Funktion.

Wie blockiert man die Benutzeroberfläche mit JQuery UI?

+0

Was ist los mit der Verwendung des BlockUI-Plugins? Es ist ziemlich leicht. –

+0

@Alastair: Nichts - mehr von einem Gedankenexperiment ist alles. Es ist ein tolles Plugin, –

Antwort

5

Sie könnten etwas Hacky tun - rufen Sie das Modal, dann auf die onopen Rückruf, remove() das modale selbst.

$("#something").dialog({ 
    open: function(event, ui) { $('.ui-dialog').remove(); } 
}); 

Hey! Ich sagte, es Hacky :)

oder

Untersuchen Sie den Modal-Code ist und sehen, ob es eine Funktion aufruft, die Benutzeroberfläche zu blockieren. Vielleicht könnten Sie eine externe Referenz hinzufügen, damit Sie sie selbst anrufen können.

oder

HTML In den Sie dokumentieren und show() oder hide() auf es nennen.

<div class="ui-widget-overlay" style="width: 100%; height: 100%; z-index: 32767;"></div> 

oder (wenn Sie nicht sicher sind, wie sie gemacht werden)

Sie sind einfach div (allgemein) absolut positioniert und 100% height/width, mit einem hohen z-index und in der Regel eine opacity (schau dir an, wie man es in IE6 mit Filtern macht).

Sie können es auch auf position: fixed setzen, so dass es immer dort sein wird, wenn Sie blättern. Sie können die Bildlaufleisten auch ausblenden, wenn Sie möchten, indem Sie $('body').css({ 'overflow-y': 'hidden' }) tun.

+0

+1: Mehrere verschiedene interessante Methoden. – Kranu

2

Um die Benutzeroberfläche zu "blockieren", fügen Sie einfach ein absolut positioniertes div mit einem hohen z-index und der gewünschten Hintergrundfarbe und Deckkraft ein, so dass es die ganze Seite abdeckt.

+0

Ich denke, er weiß * wie *, aber * kann * er es mit jQuery UI tun? d. h. nicht seinen eigenen Code und CSS schreiben. – alex

+0

@Alex: Eigentlich habe ich nicht :(Aber dein Punkt ist gültig. –

+0

Whoops, mein Fehler! – alex

0

jQuery habe nur einen Fortschrittsbalken, wie ich weiß. Natürlich können Sie alles oben tun, aber es scheint zu kompliziert zu verwalten, wenn Sie mit dem vergleichen, was Sie bereits verwenden.

Mein recommandation ist, zu versuchen jQuery Block UI

wirklich sauber zu ändern und viele CSS-Optionen. Einfach zu verwenden und in jedem Projekt zu implementieren.

+0

@BillyONeal Ich glaube, du hast meine Antwort nicht gelesen: "Was du schon benutzt hast" ist vor deinen Augen –

+0

Die Frage lautet: "Ich benutze dieses Plugin, um die Benutzeroberfläche zu blockieren.Wie würde ich die Verwendung von nur jQuery UI-Komponenten (anstatt dieses Plugins) implementieren? "Ihre Antwort lautet:" Versuchen Sie, dieses Plugin zu verwenden, das Sie explizit in der Frage " –

+0

" angegeben haben. Sprechen wir hier über englische Grammatik oder programmieren? Ich denke, ist unhöflich zu wählen, nur weil Sie nicht den Punkt bekommen. –

0
<div id="__messageBox_wait" class="messageBoxArea" style="display: none; cursor: default"> 
       <div> 
        <label id="__messageBox_wait_text" style="vertical-align: middle"> 
         Please wait</label> 
       </div> 
</div> 

function blockUI() { 
     var boxHtml = $('#__messageBox_wait'); 
     var message = "Please wait..."; 
     $('#__messageBox_wait_text').text(message); 
     $.blockUI({ 
      theme: false, 
      title: 'Message', 
      message: boxHtml, 
      css: 'width:15%' 
     }); 
    } 


    $.unblockUI(); -- call to Unblock UI 
    blockUI(); --- call to block UI 
Verwandte Themen