Używam JQuery 1.12.4. Mam następujący DIV, który zamierzam otworzyć jako dialog.Jak mogę otworzyć mój mod jQuery tak szeroki jak moje elementy, ale nie szerszy?
<div id="loginBox" style="display:none">
<div>Login/Sign Up</div>
<div id="loginLogos">
<a href="/auth/google"><img border="0" alt="Google" src="http://www.racertracks.com/assets/google_plus_icon-8d7622763257233cf58e0465806f58d7c4b82b85271c2d03d0e02b2fadc4ac76.jpg"></a>
<a href="/auth/facebook"><img border="0" alt="Facebook" src="http://runtrax.devbox.com:3000/assets/facebook-b74d7c49fd91aa6ca76518bf46c7b75fa3b23f47028bea4b2ffaa39f5776dd91.png"></a>
<a href="/auth/twitter"><img border="0" alt="Twitter" src="http://runtrax.devbox.com:3000/assets/twitter_icon-7dbf8db24c3ad328ea28cba340e4f53e033b64b149850324822cdb622d77f331.png"> </a>
</div></div>
Co mam zauważyć, że kiedy zmniejszyć szerokość mojego ekranu do około 320 pikseli (do symulacji mobilnych szerokość przeglądarki), okno otwiera się szerzej niż całkowita szerokość elementów - nie ma dużo białej przestrzeni po prawej stronie obrazów. Zobacz Fiddle tutaj - https://jsfiddle.net/g4a60Lq7/3/. Jak sprawić, by dialog otwierał się tak szeroko, jak elementy, a nie szerszy? Poniżej jest jak jestem otwierając okno ...
var opt;
opt = {
autoOpen: false,
modal: true,
width: 'auto',
dialogClass: 'noTitle',
focus: function() {
return $(this).dialog('option', 'width', $('#loginBox').width() + 50);
}
};
$("#loginBox").dialog(opt);
return $("#loginBox").dialog("open");
Edit: chcielibyście opublikować zdjęcie w odpowiedzi na drugi plunker pritishvaidya za ...
próbowałeś bez dodatkowych 50 pikseli, ale przy użyciu outerWidth zamiast? Podobnie jak w przypadku: return $ (this) .dialog ('option', 'width', $ ('# loginBox'). OuterWidth()); –
Przy okazji lepiej przechowywać $ ("# loginBox") w zmiennej, ponieważ używasz jej wiele razy. Nie da to zauważalnego zwiększenia wydajności w tym konkretnym przykładzie, ale dobrą praktyką jest buforowanie obiektów selekcyjnych, które są często używane wielokrotnie, w przeciwnym razie jQuery musi przejść przez DOM za każdym razem iw końcu, co daje czasy ładowania. –
Po usunięciu "+50" na zwykłym ekranie jeden z logo zawija się do następnej linii, mimo że wszystkie pozostają na tej samej linii. – Dave