инициировать действие «изменить», когда выпадающий список «выбран», а не при изменении значений выпадающего списка - PullRequest
2 голосов
/ 16 июня 2011

У меня есть несколько выпадающих списков, которые создаются динамически.

Я неплохо справился с сохранением кода СУХОЙ, но у меня небольшая проблема.

Я приказываю jQuery инициировать событие, когда список выбора «изменяется», и, поскольку список создается динамически, они изменяются при получении ответа с сервера, который jQuery рассматривает как изменение.Но на самом деле я хочу, чтобы действие запускалось только тогда, когда опция выбрана из выпадающего списка.

$('select').change(function(){
       var idx = $(this).index();
       var query = $(this).val();
    $.ajax({
        url: 'getNext',
        data: {query:query},
        dataType: 'json',
        success: function(data){
                    var optionsList =''; 
                      for (var j=0; j'+data[j]+'';
                        }
                     $('select:eq('+idx+1+')').html(optionsList);
                         }
     });
});

Я пытался использовать

$('select:selected').change()
, но это ничего не вызывает.Любые предложения о том, как вызвать изменение только при выборе параметра, а не при создании параметра или списка выбора?

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Попробуйте триггер

$('select:selected').trigger('change'); 
0 голосов
/ 16 июня 2011

Вы пробовали:

$('select').click(
    function(){
        $(this).trigger('change');
    });
...