23

要素のシミュレートに次のコードを使用しますclickselect

$(function(){
   $("#click").click(function(){
       $("#ts").click();
       //$("#ts").trigger("click");
   });
});

HTMLコードは次のとおりです。

<select id="ts">
    <option value="1">1</option>
    <option value="2">Lorem ipsum dolor s.</option>
    <option value="3">3</option>
</select>

<input type="button" id="click" value="Click"/>

私はテストclicktriggerましたが、両方とも機能しません。

助けてくれてありがとう。

4

6 に答える 6

35

さて、clickHTMLにイベントを添付することはできませselectんが、このトリッキーなことはできます...

ここを見てください:

ライブデモ:

http://jsfiddle.net/oscarj24/GR9jU/

于 2012-11-05T15:29:18.537 に答える
18

これは、あなたが得ることができると私が思う最高のクロスブラウザ方法です. Safari、Firefox、Chrome、IE でテスト済み。Chrome の場合、Oscar Jara の回答が最適です。 (更新: 2016 年 10 月 13 日)

$(function() {
    $("#click").on('click', function() {
        var $target = $("#ts");
        var $clone = $target.clone().removeAttr('id');
        $clone.val($target.val()).css({
            overflow: "auto",
            position: 'absolute',
            'z-index': 999,
            left: $target.offset().left,
            top: $target.offset().top + $target.outerHeight(),
            width: $target.outerWidth()
        }).attr('size', $clone.find('option').length > 10 ? 10 : $clone.find('option').length).change(function() {
            $target.val($clone.val());
        }).on('click blur keypress',function(e) {
         if(e.type !== "keypress" || e.which === 13)
            $(this).remove();
        });
        $('body').append($clone);
        $clone.focus();
    });
});

jsFiddle のデモを見る

于 2012-11-05T16:25:19.753 に答える
4

これはあなたが得る限り近いと思います:

$(function(){
   $("#click").on('click', function(){
       var s = $("#ts").attr('size')==1?5:1
       $("#ts").attr('size', s);
   });
   $("#ts option").on({
       click: function() {
           $("#ts").attr('size', 1);
       },
       mouseenter: function() {
           $(this).css({background: '#498BFC', color: '#fff'});
       },
       mouseleave: function() {
           $(this).css({background: '#fff', color: '#000'});
       }
   });
});

フィドル

于 2012-11-05T15:25:12.667 に答える
0

select前の要素で与えられた答えによって供給される複雑な要素がありselectます。オプションは、イベントによってトリガーされる AJAX によって供給されonchangeます。

私のニーズのために、ユーザーの行動をシミュレートする「隠された魔法のイベント」で回答を事前に入力するために(集中的なテスト方法で)、「私の魔法のイベント」で次のjQueryコードを使用します。インデックスでオプションを選択します。

// Quick feed of my Car Form    
document.getElementById('carbrand').selectedIndex = 30; // "PORSCHE"
document.getElementById('carbrand').onchange();

var timeoutID = window.setTimeout(function () {

    document.getElementById('model').selectedIndex = 1; // "911"
    document.getElementById('model').onchange();

    var timeoutID = window.setTimeout(function () {
        document.getElementById('energy').selectedIndex = 1; // "SUPER"
        document.getElementById('energy').onchange();
    } , 200);

} , 200);

Merci à https://stackoverflow.com/users/1324/paul-roub pour les corrects ;-)

于 2016-03-04T21:07:32.587 に答える
-3

toggleOscar Jaraバリアントの 小さな更新(あり)
http://jsfiddle.net/mike_s/y5GhB/

于 2013-10-14T13:09:52.973 に答える