1

編集A:これはjqueryの質問ではなく、jqueryMobileの質問です。

編集B:タイトルを変更しました...最初は「クリック」イベントを具体的に発生させる方法を尋ねましたが、jqm:SelectMenuの選択肢を再作成する場合は「クリック」イベントを使用するのは適切ではないようです。

jquery mobileの選択メニューでプログラムでイベントを発生させる方法は?

<select id       = 'my_select'   
        name     = 'my_select'   
        onchange = 'gf_handle_change( this.value );' >
  <option id = 'option_A'  value = 'A'> A </option>
  <option id = 'option_B'  value = 'B'> B </option>
</select>

<script>
  function gf_fire_event( args_val )
    { alert( 'test : ' + jQuery( '#option_' + args_val ) ) ; 
      jQuery( '#option_' + args_val ).trigger( 'click' ) ;
    }
  function gf_handle_change( args_val )
    { alert( args_val )  ;
    }
  gf_fire_event( 'A' ) ;
</script>

これは動作しません。

4

2 に答える 2

1

次に例を示します。

$(document).on('pagebeforeshow', '#index', function(){       
    $("#test-button").on( "click", function(event, ui) {
      $('#my_select option#option_B').trigger('click');    
    });

    $("#my_select option").each(function(){
        $(this).on( "click", function(event, ui) {
          $(this).attr('selected' , true);
          $('#my_select').selectmenu('refresh');                
        });         
    });    
});

動作するjsFiddleの例:http ://jsfiddle.net/Gajotres/RZ68b/

もう1つ、jQueryMobileでonclick="...またはonchange=" ...を使用しないでください。これにより、イベントのトリガーで問題が発生する可能性があります。常にプログラムでイベントをバインドします。

于 2013-02-08T12:46:25.773 に答える
1

それはそれをします

function gf_fire_event( args_val )
{
    //Select an option
    $('#my_select option[value=' + args_val +']').attr("selected", "selected");
    //Refresh jQM select menu
    $('#my_select').selectmenu('refresh');
    //Trigger change event
    $('#my_select').trigger('change');
}

jsFiddleの動作を参照してください

于 2013-02-08T13:58:48.873 に答える