показывать или скрывать компонент с триггером из умноженного поля со списком

#javascript #jquery

#javascript #jquery

Вопрос:

Я не могу показать или скрыть компонент из умноженного поля со списком, но я могу показать или скрыть его из исходного поля со списком (первое поле со списком), что мне делать ..?

это функция для умножения поля со списком

 function addEmploy() {}
    $('#addEmploy').click(function(){
        $('#comboEmploy')
        .append('<br />')
        .append($('#comboEmploy select').first().clone());
    });
  

это скрипт для отображения или скрытия компонента

 $("#employ").change(function() {
        if($(this).val() == "2"){
            $("#comboStudy").show("slow");
        }else{
            $("#comboStudy").hide("slow");
        }
    });
  

Это поле со списком

 <span id="comboEmploy">
                <select name="employ[]" id="employ">
                    <option value="NULL" selected >Choose one</option>
                    <?php foreach ($employs as $employ) :?>
                        <option value="<?php echo $employ->employ_id; ?>">
                        <?php echo $employ->employ_name; ?></option>
                    <?php endforeach; ?>
                </select>
            </span>
<a href="#" id="addEmploy">Add Employ</a>
  

Это компонент, который я хочу показать / скрыть

 <span id="comboStudy">
            <select name="study[]" id="study">
                <option selected value=NULL>Choose one</option>
                <?php foreach ($studies as $study) :?>
                        <option value="<?php echo $study->study_id; ?>">
                        <?php echo $study->study_name; ?></option>
                <?php endforeach; ?>
            </select>
            </span>
  

Кто-нибудь может мне помочь. спасибо ранее.

Ответ №1:

Когда вы клонируете select поле, вам нужно указать jQuery клонировать события вместе с ним:

 .clone(true);
  

Ответ №2:

Поскольку вы добавляете элементы в DOM после загрузки страницы, вам необходимо использовать функцию live() для прикрепления их событий:

 $("#employ").live("change", function() {
    ...
}