8

メニュー ボタン リンクにアタッチされたメニューに (非表示の) html 選択オブジェクトがあるため、リンクをクリックするとリストが表示され、そこから選択できます。

ボタンをクリックすると、javascript が呼び出されて<select>. リスト以外をクリックすると<select>、リストが非表示になります。私が本当に望んでいるのは<select>、「下」矢印をクリックしたかのように、完全に展開されたように見せることですが、これを機能させることはできません。さまざまなアプローチを試みましたが、前進することはできません。私が現在やっていることはこれです:

<li>
    <a href="javascript:showlist();"><img src="/images/icons/add.png"/>Add favourite</a>
    <select id="list" style="display:none; onblur="javascript:cancellist()">
    </select>
</li>

// in code
function showlist() {
    //using prototype not jQuery
    $('list').show();  // shows the select list
    $('list').focus(); // sets focus so that when you click away it calles onblur()
}
  • 電話してみました$('list').click()
  • 設定してみましたがonfocus="this.click()" 、どちらの場合も取得しています

キャッチされていない TypeError: オブジェクト # にはメソッド 'click' がありません

リンクテキストが標準機能をサポートしていると言っているので、これは独特です。

機能する を設定しようとしました.size = .lengthが、外観が同じではありません (要素をクリックして開くと、ページの残りの上に浮かびます)。

誰か提案はありますか?

4

5 に答える 5

1

私は同じ問題に遭遇し、アプリにキーボード ナビゲーションを実装したいと考えていましたが、選択要素が展開されていなかったため、キーボードを使用している人は機能を失うことになりました。select 要素でのマウス クリックをエミュレートする ExpandSelect() 関数を作成しました。これは、属性<select>を設定することで複数のオプションを一度に表示できる別の関数を作成することで実現しsizeます。コードは Google Code Web サイトでホストされ、ExpandSelect.js はわずか 4 KB です。スクリーンショットを見て、ここからダウンロードしてください:

http://code.google.com/p/expandselect/

スクリーンショット

クリックをエミュレートするときに GUI に少し違いがありますが、実際には問題ではありません。自分の目で確かめてください。

マウスクリック時:

マウスクリック
(ソース: googlecode.com )

クリックをエミュレートするとき:

クリックのエミュレート
(ソース: googlecode.com )

プロジェクトのウェブサイトのその他のスクリーンショット、上記のリンク。

于 2011-11-09T19:14:37.597 に答える
-1

ここに簡単な解決策、AUTO-EXPANDED 選択メニュー (すべてのオプションが表示されます)

<select name="ddlTestSelect" id="ddlTestSelect" style="width:200px;position:absolute;">
  <option selected="selected" value="0">defaulttt</option>
  <option>option 2</option>
  <option>option 3</option>
  <option>option 4</option>
</select>
<script type="text/javascript">
 var slctt=document.getElementById("ddlTestSelect");
 slctt.size=slctt.options.length;if(slctt.options.length>1)slctt.style.width='470px';
</script>
于 2014-03-10T08:34:08.567 に答える
-2

構文エラーがあります。そのはず:

$('#list').click();

あなたは忘れました#

于 2010-05-27T18:07:37.273 に答える
-2

これを試してください:

function showlist() {
    //using prototype not jQuery
    $('#list').show();  // shows the select list
    $('#list').focus(); // sets focus so that when you click away it calles onblur()
}
于 2012-10-10T05:49:34.123 に答える