2016-03-26 6 views
0

Wenn ich einer Auswahl eine Breite in Prozent zuweise (z. B. 100%), berechnet jQuery UI die äquivalente Breite in Pixel und weist sie dem Auswahlmenü-Widget zu. Dies führt jedoch zu Problemen bei der Größenänderung des Bildschirms. Gibt es eine Möglichkeit, diesen Fehler zu beheben?jQuery UI-Auswahlmenü akzeptiert keine Breiten in Prozent

JSFiddle

HTML:

<form action="#"> 

    <fieldset> 
    <label for="speed">Select a speed</label> 
    <select name="speed" id="speed"> 
     <option>Slower</option> 
     <option>Slow</option> 
     <option selected="selected">Medium</option> 
     <option>Fast</option> 
     <option>Faster</option> 
    </select> 
    </fieldset> 

</form> 

</div> 

CSS:

body{font-family:arial} 

fieldset { 
    border: 0; 
} 
label { 
    display: block; 
    margin-bottom: 10px; 
} 
select { 
    width: 100%; 
} 

Javascript:

$(function() { 
    $("#speed").selectmenu(); 
    }); 
+0

NB außer Kraft zu setzen: Ich bin auch mit ein verwandter Bug (den ich nicht reaktivieren konnte) (leider in JSFiddle): Ich gebe einen Prozentsatz von 100% zu einer Auswahl und jQuery UI gibt stattdessen eine Breite von 100px. Ich habe versucht, einen weiteren Prozentsatz wie 88% und das gleiche passiert (88px). – user2472523

+0

https://jsfiddle.net/arunpjohny/cprw123d/1/? - ein bisschen teuer (das Widget wird zerstört und neu erstellt), aber tut was Sie brauchen, das Widget berechnet die Dimensionen und setzt die Inline-Breite –

Antwort

0

das Element Inspizieren th zu überprüfen e jquery UI ID, die zugewiesen ist. Es ist oft #[element]-button für ausgewählte Menüs.

Dann wenden Sie das CSS auf diese ID an. In diesem Fall

#speed-button { 
     width: 100% !important; 
    } 

scheint das Problem zu beheben: Updated Fiddle

Sie auch die allgemeinen jquery UI-Klassen zielen könnte, die erstellt werden. Ich finde nur diejenigen, die zeitaufwendig zu sortieren, wenn die ID das gleiche tun wird, wenn Sie nur mit 1 oder 2 Elemente beschäftigen.

0

Bitte versuchen Sie dies:

.ui-selectmenu-button{width:100%} 

JSFiddle: https://jsfiddle.net/yzzxvbuw/11/

0

Eine Lösung ist die jQuery UI-Stil wie

$(function() { 
 
    $("#speed").selectmenu(); 
 
});
body { 
 
    font-family: arial 
 
} 
 
fieldset { 
 
    border: 0; 
 
} 
 
label { 
 
    display: block; 
 
    margin-bottom: 10px; 
 
} 
 
select { 
 
    width: 100%; 
 
} 
 
#speed + .ui-selectmenu-button { 
 
    width: 100% !important; 
 
}
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script> 
 
<div class="demo"> 
 

 
    <form action="#"> 
 

 
    <fieldset> 
 
     <label for="speed">Select a speed</label> 
 
     <select name="speed" id="speed"> 
 
     <option>Slower</option> 
 
     <option>Slow</option> 
 
     <option selected="selected">Medium</option> 
 
     <option>Fast</option> 
 
     <option>Faster</option> 
 
     </select> 
 

 

 
    </fieldset> 
 

 
    </form> 
 

 
</div>

+0

https://jsfiddle.net/arunpjohny/cprw123d/2/ –

Verwandte Themen