выберите первый элемент в меню выбора, которое появляется динамически

0

У меня есть меню выбора, которое идет динамично

<select id="mymenu">
  <option >select your choice</option>
  <option value="1">value 1</option>
  <option value="2">value 2</option>
  <option value="3">value 3</option>
  <option value="4">value 4</option>
</select>

id, который я даю. но это меню выбора подходит после загрузки страниц, когда я нажимаю кнопку через ajax. Мне нужно выбрать второй вариант/третий вариант по умолчанию

следующий код не работает для меня, поскольку он идет динамично

$( document ).ready(function() {
    $('#mymenu').find('option:eq(1)').attr('selected', true);
  });

Как выбрать первый вариант, когда приходит динамически

  • 0
    Для работы с DOM с динамическим контентом используйте jQuery.On () ...
  • 0
    Ваш код работает отлично, вы просто должны вызывать его после изменения dom (после вызова ajax), а не когда документ готов.
Показать ещё 1 комментарий
Теги:

2 ответа

1

Функция .ready срабатывает только при загрузке страницы - вы ожидаете, что она будет постоянно работать в фоновом режиме и запускает любые изменения в DOM; этого не произойдет. Что вам нужно сделать, это снова вызвать вашу функцию после загрузки страниц.

0

Более сложным решением для текущего сценария является подключение прослушивателя событий к DOM и проверки элементов, вставленных на страницу. После обнаружения требуемого элемента активируйте действие на нем.

На самом деле это решение не для текущего примера, но кому-то, вероятно, понадобится это для выполнения более сложных задач:

// Listen for inserted nodes, checking if its needed one 
// and triggering needed action
$(document).bind('DOMNodeInserted', function(event) {
    var elm = $(event.target);
    if (elm.attr('id') == 'mymenu') {
        elm.find('option:eq(1)').attr('selected', true);
    }
});

// create select box
var select = $('<select>').attr('id', 'mymenu');
var option = $('<option>');
var option_values = {
    0: 'select your choice',
    1: 'value 1',
    2: 'value 2',
    3: 'value 3',
    4: 'value 4'
};
$.each(option_values, function(key, val) {
    $(select).append(option.clone(true).val(key).text(val));
});

// insert select box into DOM
$(document.body).append(select);

http://jsfiddle.net/dnGEL/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню