У меня есть целевой сайт, где есть раскрывающееся меню.Запуск события
<select class="categories-options" data-level="1" name="level1-option" id="level1-option" required="">
<option value="">default</option>
<option value="p1" data-href="/callback/p1">P1</option>
<option value="p2" data-href="/callback/p2">P2</option>
<option value="p3" data-href="/callback/p3">P3</option>
</select>
Когда элемент выбран из меню, это вызывает «изменение» событие и функция вызывается, когда происходит это событие. Я отлаживал это событие с помощью Chrome, и вы можете увидеть вывод отладки, когда я выбрал элемент из выпадающего меню. Я снял снимок с отладчика.
Теперь позвольте мне объяснить, что я пытаюсь сделать. Я использую яваскрипта функцию, чтобы выбрать пункт из выпадающего меню, используя следующий код:
var id= document.getElementById('level1-option');
setSelectedValue(id, "p2");
$('#level1-option').trigger("select");
В последней строке, я стараюсь, чтобы вызвать такое же событие, которое происходит первоначально на веб-странице, как будто я вручную выбран пункт , однако это ничего не вызывает. | Я вижу на выходе отладки, что событие запускается классом. Я пробовал много разных вещей, но не работал. Может ли кто-нибудь пролить свет на эту проблему? Как я могу инициировать одно и то же событие, которое происходит на этой веб-странице, используя jquery или javascript?
Ну, я уже пытался Селе ct, change, onChange, но они не просто работают. Что вы думаете о srcElement в окне отладки? может быть, мой селектор неправильный? – Dundar
@Dundar: Событие 'select' здесь не имеет значения (оно не связано с изменением значения). Нет события 'onChange'. Событие «change». Конечно, похоже, что у вас есть правильный селектор для элемента, а 'trigger' jQuery запускает событие изменения. Я предлагаю остановить отладчик на вашем коде и убедиться, что этот элемент существует, когда вы пытаетесь его обновить. –