11

そのため、select 要素のオプションが表示されますが、それをクリックする必要があります。関数を使用したい場合はどうすればよいですか? 何かが起こったときに、この select 要素を選択する必要があります。これは、リストが開いていて、オプションが表示されていることを意味します。ユーザーに選択要素をクリックさせたくないので、他の何かでそれを開いてもらいたいです。

私が試したこと

$("select").select();
$("select").click();
$("select").focus();

選択要素があります。通常、それを開きたい場合 (ドロップダウン リスト)、それをクリックします。私が欲しいのは、DIVまたは他のものをクリックすると開くことです。ユーザーが選択要素をクリックせずに、このドロップダウンリストを開くようにします。

4

3 に答える 3

22

これはうまくいくはずです:

var element = $("select")[0], worked = false;
if (document.createEvent) { // all browsers
    var e = document.createEvent("MouseEvents");
    e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    worked = element.dispatchEvent(e);
} else if (element.fireEvent) { // ie
    worked = element.fireEvent("onmousedown");
}
if (!worked) { // unknown browser / error
    alert("It didn't worked in your browser.");
}

于 2012-05-04T18:01:56.743 に答える
5

受け入れられた回答は正しいですが、時代遅れであり、initMouseEventまもなく非推奨になるため、ここで更新してください。[参照: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent]

代わりに以下を使用してください: new MouseEvent[参照: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent]

コード例:

var el = $('select'); // grab the input (jQuery)
var event = new MouseEvent('mousedown'); // create the event listener
el.dispatchEvent(event); // attach the event listener to the element
于 2016-03-10T20:23:51.983 に答える
1

drop down選択ボックスに任意のコードを使用させることはできないと思います。ただし、コードを使用して選択したオプションを変更することはできます。Plsはこれを見てください

http://www.mredkj.com/tutorials/tutorial003.html

于 2012-05-04T17:26:19.470 に答える