0

選択したトリガーを起動したいのですが、何も機能していないようです:

これは私の選択です:

<select id="sel_annee">
        <option value="<?php echo (date('Y')-1); ?>"><?php echo (date('Y')-1); ?></option>
        <option value="<?php echo date('Y'); ?>" selected='selected'><?php echo date('Y'); ?></option>
        <option value="<?php echo (date('Y')+1); ?>"><?php echo date('Y')+1; ?></option>
    </select>

これは私のトリガーです:

$(document).ready(function(){

           $('#sel_annee').trigger("change");

そしてこれが関数です

$('#sel_annee').change(function()
           {
              alert("here");            
              $('.month').hide();
              $('.month:first').show();
              $('.months a:first').addClass('active');

                          $.ajax({
                             type: 'post',
                             url: 'changer_annee.php',
                             data:
                             {
                                year:$('#sel_annee').val()
                             },
                             dataType: 'text',

                             success: function(retour_php)
                             {
                                $('#month1').html('');         
                                //console.log(retour_php);
                                var arr = retour_php.split('#');

                                //console.log(retour_php);

                               for(i= 1; i<=12;i++)
                               {
                                  $('#month'+i).html(arr[i-1]);
                                  //console.log($('#month'+i));
                                  //console.log(arr[i]);
                               }

                               //$('.month').hide();
                               $('.month:first').show();
                               $('.months a').removeClass('active');
                               $('.months a:first').addClass('active');
                               //$('.months a:first').addClass('active');


                             },
                             error: function(retour_php)
                             {
                                alert("pas ok");
                                alert(retour_php);
                             }

                          }
                          );
           });

このアラートは機能しません:

$('#sel_annee').change(function()
               {
                  alert("here");

やるべきことはすべてやったと思いますが、トリガーが機能しません。

何か案が ?前もって感謝します。

4

3 に答える 3

1

ハンドラーをアタッチする前でもトリガーしようとしていると思います。changechange

代わりに次のことを行う必要があります。

$(document).ready(function(){

   // bind the change handler
   $('#sel_annee').change(function() {
      ...
   });

   // now trigger it
   $('#sel_annee').trigger("change");
});
于 2013-03-29T10:19:19.867 に答える
0

ドキュメント対応ハンドラー コードで、変更ハンドラーを最初にアタッチしてから変更イベントをトリガーしていることを確認してください。

あなたのコードではすべてが完璧であり、関数をアタッチする前にイベントをトリガーしようとすることだけが間違っていると思います。

于 2013-03-29T10:38:23.773 に答える
0

次のようなことを試してください:

jQuery(function(){
    $('#sel_annee').change(function(){
    alert('changed');
    });
    $('#sel_annee').trigger("change");
});
于 2013-03-29T11:33:38.437 に答える