2010-11-18 13 views

Antwort

3

Nein, nicht ohne ein benutzerdefiniertes Drop-Down-Auswahlelement zu verwenden.

jQuery hat .click(), aber das führt nur ein onclick-Ereignis aus, das an das select-Element gebunden ist, nicht das native "click" -Ereignis des GUI-Elements selbst.

0

Sie die Größe des aktuellen Auswahlbereich erhöhen, indem Sie diese:

<select id="list1"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 
<button type="button" onclick="expand()">Click Me!</button> 

<script type="text/javascript"> 
function expand() 
{ 
    document.getElementById("list1").size=3; 
} 
</script> 

dies durchaus nicht der Drop-Down-Erweiterung, sondern mehr davon zeigen durch Erhöhen der Höhe auf der Seite, aber es kann immer noch erreichen, was Sie wollen.

+0

Wow nur 35 Sekunden vor meiner Antwort. Cool. –

+0

Danke, ich könnte versuchen, diese Lösung zu verwenden, obwohl das, was ich ursprünglich machen wollte, einfach nicht möglich ist. – Corfro

+0

kein Problem, viel Glück! – Dima

2

Gareth Antwort ist die richtige!

Eine mögliche Alternative wäre, das Größenattribut des Auswahlfelds zu ändern. Dadurch würde die Auswahl nicht angezeigt, aber sie würde als Listenfeld angezeigt. Etwas wie:

function showSelect() 
{ 
    var sel = document.getElementById('test'); 
    sel.size = 3; 
    return false; 
} 

<select id="test" size="1"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
</select> 

<a href="#" onlclick="return showSelect();">show select list</a> 
+0

Eine allgemeinere Vesrion könnte sein: sel.size = sel.length; –

0

Ja, aber die Lösung ist einfacher als Sie denken. Anstatt Java-Script zu schreiben, um einen Fokus zu erzeugen, erstellen Sie einfach Ihre Schaltfläche und positionieren Sie das select-Element absolut mit einer Deckkraft von 0.001. Dadurch können Sie den Select-Klick auslösen, so wie das DOM es beabsichtigt hat.

Zum Beispiel sehen, wie zappos es macht here.

Das funktioniert! Versuch es!

Verwandte Themen