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

php

Copy
<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>

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

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

                <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>

 

script

Copy
$("#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";

    fld += "<button type=\"button\" id=\"del_supply_row\"  class=\"btn_frmline nt2\">삭제</button>\n";
    fld += "</td>\n";
    fld += "</tr>";
    $el.after(fld);
});


$(".sel_first").change(function(e) {
    alert("aa");
});

 

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

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

 

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

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

 

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

답변 1개

채택된 답변
+20 포인트

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

   alert("aa");

});

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

답변에 대한 댓글 2개

감사합니다.
더불어....

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

와 차이가 어떻게 되나요?

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

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

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

로그인
🐛 버그신고