2011-10-15 20 views
5

İletişim kutusunun kendisi yalnızca sayfanın yaklaşık% 10'unu kaplar ve iletişim kutusunun sayfa arka planını kaldırmak veya dönüştürmek istedim, böylece önceki sayfa görünmeye devam eder. Jquery Mobile Dialog için sayfa arka planı nasıl kaldırılır?

Bu

iletişim çağırır js geçerli:

$.mobile.changePage('#popdiv',{transition:'slide', role:'dialog'}); 

ve bu özel css kullanarak çalıştı div

<div data-role="page" id="popdiv" data-role="page" data-theme="e">   
    <div data-role="content"> 
    <h1>Congrats!</h1> 
    </div> 
</div> 

ama için herşeyi

div#popdiv { 
    background: none; // i also used background-image and color and set it to none 
} 
değiştirmek gibi görünmüyor

ve bu şekilde css ve js olarak bildirildi

<custom css> 
<jquery mobile css> 
<jquery min.js> 
<phonegap.js> 
<custom.js> 
<jquerymobile.js> 

Lütfen yardım edin. çok teşekkürler.

cevap

0

Sadece css benim için çalışıyor

.ui-mobile [data-role="dialog"], .ui-page { 
display:block !important; 
} 

için bunu ekleyin.

+1

Diğer öğeleri kaydeder. –

+0

iletişim kutusunu modal değil, ama iyi fikir! – Olivier

22

Kabul edilen yanıt, jQuery Mobile için bir üçüncü taraf iletişim kutusu kullanılmasını önerir. Kullanmak isterseniz ardından şu dahili iletişim çalışacak mevcut:

<link rel="stylesheet" href="themeroller/mobile.min.css" /> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile.structure-1.1.0.min.css" /> 
<link rel="stylesheet" href="mobile-custom.min.css" /> 

Benim özel CSS (post tema ve JQM mobil yapı CSS):

Benim CSS düzeni şöyle

.ui-dialog-background { 
    opacity: 0.5; 
    display: block !important; 
    -webkit-transition: opacity 0.5s ease-in; 
} 

.ui-dialog-background.pop.in { 
    opacity: 1; 
    -webkit-transition: opacity 0.5s ease-in; 
} 

.ui-dialog { 
    min-height: 100% !important; 
    background: transparent !important; 
} 

Ve JavaScript sayfa yüklendiğinde:

$(function() { 
    $('div[data-role="dialog"]').live('pagebeforeshow', function(e, ui) { 
    ui.prevPage.addClass("ui-dialog-background "); 
    }); 

    $('div[data-role="dialog"]').live('pagehide', function(e, ui) { 
    $(".ui-dialog-background ").removeClass("ui-dialog-background "); 
    }); 
}); 

Kaynak: Tom Clarkson

+1

bu, bu çözüme .ui-dialog {z-index: 3000;} ekledikten sonra benim için çalışır. Teşekkürler –

5

jQuery> 1.9, live() kaldırıldı. Böylece, Junto'un aşağıdaki gibi yayınladığı JavaScript'i değiştirmeye çalışın:

$(document).on('pagebeforeshow', 'div[data-role="dialog"]', function (e, ui) { 
    ui.prevPage.addClass("ui-dialog-background "); 
}); 

$(document).on('pagehide', 'div[data-role="dialog"]', function (e, ui) { 
    $(".ui-dialog-background ").removeClass("ui-dialog-background "); 
});