Используя семантический пользовательский интерфейс, вы хотите создать динамическое раскрывающееся меню

Возникла проблема с раскрывающимся списком семантического пользовательского интерфейса. Я использовал Semantic-Ui и хотел динамически изменить раскрывающийся список. То есть, когда я выбираю значение из первого раскрывающегося списка, создается второй элемент раскрывающегося списка, но когда я выбираю значение из второго раскрывающегося списка, третий раскрывающийся список и его элемент не генерируются.

<script src = "https://code.jquery.com/jquery-3.1.1.min.js" crossorigin = "anonymous"></script>
<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.css">
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.js"></script>

<div class = "ui selection dropdown select">
    <input type = "hidden" name = "programmetype">
    <div class = "text">First dropdown</div>
    <i class = "dropdown icon"></i>
    <div class = "menu">
        <div class = "item" data-value = "val1">Car</div>
        <div class = "item" data-value = "val2">Tank</div>
        <div class = "item" data-value = "val3">Plane</div>
    </div>
</div>

<div id = "servicetype"></div>
<script>
$(".select").dropdown({
    onChange: function() {
        $('.select').remove();
        $('#servicetype').addClass('ui selection dropdown select-language');

        $('#servicetype').html(
            '<input type = "hidden" name = "servicetype">'
            +'<div class = "text">Second dropdown</div>'
            +'<i class = "dropdown icon "></i>'
            +'<div class = "menu">'
            +'<div class = "item" data-value = "acp">ACP</div>'
            +'<div class = "item" data-value = "art"> ART</div>'
            +'</div>'
            +'</div>'
        );
        $('#servicetype').dropdown();
        $(".select-language").dropdown({
            onChange: function() {
                $('.select-language').remove();
                $('#servicetype').addClass('ui selection dropdownselect');

                $('#servicetype').html(
                    '<input type = "hidden" name = "servicetype">'
                    +'<div class = "text">Third dropdown</div>'
                    +'<i class = "dropdown icon "></i>'
                    +'<div class = "menu">'
                    +'<div class = "item" data-value = "acp">AC</div>'
                    +'<div class = "item" data-value = "art"> AR</div>'
                    +'</div>'
                    +'</div>'
                );
                $('#servicetype').dropdown();
            }
        });
    }
});
</script>
stackoverflow.com/questions/56341481/…
Tejashwini Shankar 30.05.2019 08:52

@Sami спасибо за отступ, не могли бы вы помочь мне с запросом

Tejashwini Shankar 30.05.2019 09:49
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
319
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Удалил автономный <div id = "servicetype"></div> в разметке и создавать его на лету
  2. Цепочка методов
  3. addClass изменено
  4. Предложение: вы можете создать функцию с литералом шаблона, содержащим всю разметку раскрывающегося списка, и передать значения в качестве аргументов.

$(".select").dropdown({
  onChange: function () {
    $(this).remove();
    $('body').append('<div id = "servicetype"></div>');
    $("#servicetype").addClass("ui selection dropdown select-language").html(
      "<input type='hidden' name='servicetype'>" +
      "<div class='text'>Second dropdown</div>" +
      "<i class='dropdown icon'></i>" +
      "<div class='menu'>" +
      "<div class='item' data-value='acp'>ACP</div>" +
      "<div class='item' data-value='art'> ART</div>" +
      "</div>" +
      "</div>"
    ).dropdown();

    $(".select-language").dropdown({
      onChange: function () {
        $(this).remove();
        $('body').append('<div id = "servicetype"></div>');
        $("#servicetype").addClass("ui selection dropdown").html(
          "<input type='hidden' name='servicetype'>" +
          "<div class='text'>Third dropdown</div>" +
          "<i class='dropdown icon'></i>" +
          "<div class='menu'>" +
          "<div class='item' data-value='acp'>AC</div>" +
          "<div class='item' data-value='art'> AR</div>" +
          "</div>" +
          "</div>"
        ).dropdown();
      }
    });
  }
});
<div class = "ui selection dropdown select">
  <input type = "hidden" name = "programmetype">
  <div class = "text">First dropdown</div>
  <i class = "dropdown icon"></i>
  <div class = "menu">
    <div class = "item" data-value = "val1">Car</div>
    <div class = "item" data-value = "val2">Tank</div>
    <div class = "item" data-value = "val3">Plane</div>
  </div>
</div>

<script src = "https://code.jquery.com/jquery-3.1.1.min.js" crossorigin = "anonymous"></script>
<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.css">
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.js"></script>

Другие вопросы по теме