2017-02-07 4 views
0

Я пытаюсь создать страницу, в которой элементы списка динамически добавляются под элементом «ul».Jquery on click не работает после события изменения на selectmenu

  1. Когда элемент списка будет нажата, она будет открыта selectmenu (JQuery плагин)
  2. Пользователь будет выбрать одно из значений, после чего selectmenu нужно закрыть (скрыть)
  3. выбранное значение из меню заносится в текст элемента списка, который был нажат, чтобы всплывающее меню.
  4. После того как текст элемента списка заполняется динамически добавить еще один элемент списка под ним
  5. Теперь пользователь должен иметь возможность повторить с шагом 1 до 4.

Я могу сделать шаги с 1 по 4 первых время, но после того, как selectmenu скрыт, клики по вновь добавленному элементу списка или любому из ранее добавленных списков не распознаются.

Я не могу понять, где все я ошибаюсь. Ниже приведен код html и jquery. Все указатели будут оценены

HTML

<body> 
<div class="container"> 
    <ul class="tree"> 
     <li class="connection" id="connection1">-------------</li> 
    </ul> 
</div> 


</body> 
<div class="selection"> 
    <select id="my-select" name="character" multiple="multiple"> 
     <optgroup label="The Griffins"> 
      <option value="Peter">Peter Griffin</option> 
      <option value="Lois">Lois Griffin</option> 
      <option value="Chris">Chris Griffin</option> 
      <option value="Meg">Meg Griffin</option> 
      <option value="Stewie">Stewie Griffin</option> 
     </optgroup> 

     <optgroup label="Peter's Friends"> 
      <option value="Cleveland">Cleveland Brown</option> 
      <option value="Joe">Joe Swanson</option> 
      <option value="Quagmire">Glenn Quagmire</option> 
     </optgroup> 

     <option value="Evil Monkey">Evil Monkey</option> 
    </select> 
</div> 

Javascript для функции мыши

var i = 1; 

$('body').on("click", ".connection", function() { 
    var connectionid = $(this).attr('id'); 
    $("#my-select").selectmenu({ 
     change: function (event, data) { 
      var selectedText = $(this).val(); 
      $("#connection" + i).text(selectedText); 
      $(".selection").hide(); 
      i++; 
      var id = "connection" + i; 
      $("#" + connectionid).append("<li class='connection' id=" + id + ">-------------</li> ") 
     } 
    }) 
}); 

ответ

0

Я был в состоянии найти ответ самостоятельно. «on» не было определено должным образом

Смежные вопросы