Выберите опцию <select>, используя jQuery таким образом, чтобы вызвать любые обработчики изменений - PullRequest
1 голос
/ 13 ноября 2010

Я использую раскрывающееся меню Google Translate для перевода сайта, но это не сохраняется на разных страницах, поэтому я пытаюсь вручную выбрать нужный параметр при загрузке страницы, чтобы сделать его постоянным.

Однако простое использование $('#google_translate_element select').val('es'); не вызывает событие, которое фактически переводит страницу.Я не могу понять, как манипулировать этим программным способом таким образом, который фактически вызывает событие onchange.

Я также пытался:

$('#google_translate_element select option[value=es]').attr('selected', 'selected').trigger('change');

и

$('#google_translate_element select').val('es').trigger('change');

Не повезло.Есть идеи?

Для справки, вот HTML, с которым я работаю (который выводится скриптом Google Translate)

<div id="google_translate_element">
  <div class="skiptranslate goog-te-gadget" style="">
    <div id=":1.targetLanguage" style="display: inline; ">
      <select class="goog-te-combo">
        <option value="">Select Language
        </option>
        <option value="es">Spanish
        </option>
      </select>
    </div>
  </div>
</div>

Ответы [ 3 ]

2 голосов
/ 13 ноября 2010

Я нашел http://translateth.is/ и в итоге использовал это вместо этой ерунды. По умолчанию он сохраняется при загрузке страниц и все еще использует API Google Translate.

0 голосов
/ 13 ноября 2010

Попробуйте это: $ ('# google_translate_element select'). Bind ('change', function () {alert ('updated');});Это регистрирует обработчик для события onchange.

0 голосов
/ 13 ноября 2010

Ваш код работает нормально для меня ... код, будь то, что событие не "изменить", а "нажмите".

...