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 回答