테스트 사이트 - 개발 중인 베타 버전입니다

jquery로 추가된 행렬은 jquery가 안먹네요... 채택완료

밀랍 3년 전 조회 2,468

php

</p>

<p>         <table id="sit_supply_frm">

            <tbody>

            <tr>

            <?php

            $i = 0;

            do {

                $seq = $i + 1;

            ?>

            <tr class="rows view"><td>

                <select class=" sel_first" value="<?php echo $write[wr_11][$i]; ?>" name="wr_11[]" id="wr_11">

                    <option <?php echo get_selected('제품 선택', $write['wr_11'][$i]); ?>>제품 선택</option></p>

<p><option <?php echo get_selected('제품 선택', $write['wr_11'][$i]); ?>>제품 선택</option></p>

<p><option <?php echo get_selected('제품 선택', $write['wr_11'][$i]); ?>>제품 선택</option>

                </select></p>

<p>                <select class="sel_second" value="" name="wr_12[]" id="wr_12">

                    <option><?php echo ($write[wr_12][$i] != "")?  $write[wr_12][$i] : "제품선택" ?></option>

                </select>

                </td>

            </tr>

            <?php

                $i++;

            } while($i < $count);

            ?>

            </tbody>

        </table>

        <div class="form-group"><button type="button" id="add_supply" class="btn_frmline">추가</button></div>

      </td>

    </tr>

    </table></p>

<p>

 

script

</p>

<p>

$("#add_supply").click(function() {

    var $el = $("#sit_supply_frm tr:last");

    var fld = "<tr class='nona sec_tr'>\n";

    fld += "<td><label class=\"lab\" style=\"width:15px; display: inline-block;\" for=\"\" scope=\"row\">추가</label>\n";

    fld += "<select class=\"frm_input sel_first ani_imm\"                                             name=\"wr_11[]\" >\n";

    fld += "<option>제품 선택</option>\n";

    fld += "<option>제품 선택</option>\n";

    fld += "<option>제품 선택</option>\n";

    fld += "</select>\n";

    fld += "<select class=\"frm_input sel_second all_sub sel_disabled\"                                    name=\"wr_12[]\">\n";

    fld += "<option>제품선택</option></select>\n";

    fld += "</span>\n";

    fld += "</label>\n";

    fld += "<input type=\"hidden\" class=\"check_in\" id=\"wr20c\" value=\"N\" name=\"wr_20[]\">\n";</p>

<p>    fld += "<button type=\"button\" id=\"del_supply_row\"  class=\"btn_frmline nt2\">삭제</button>\n";

    fld += "</td>\n";

    fld += "</tr>";

    $el.after(fld);

});</p>

<p>

$(".sel_first").change(function(e) {

    alert("aa");

});</p>

<p>

 

첫번째 행렬 (로드상태)에서는 alert가 먹는데

추가해서 생성되는 새로운 행렬은 alert가 안먹습니다.

 

$el.after(fld); 뒤에 값을 넣으면 alert가 작동할테지만..

그러면 같은 소스를 두번씩 넣어야 하는 불편함이 있을거 같아서..

 

추가되는 행렬에서도 작동이 되고 기존값에서도 작동이 되게 할려면 어떻게 해야 하나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

$(document).on("change", ".sel_first", function() {

   alert("aa");

});

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

밀랍
3년 전
감사합니다.
더불어....

$(".sel_first").change(function(e) {

와 차이가 어떻게 되나요?

$(document).on("change", ".sel_first", function() {
쟁반짜장
3년 전
https://api.jquery.com/on/#event-performance
이벤트 위임 이런 걸로 검색해 보시면 될 것 같습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인