전역, 또는 해당 객체 내에서 태그의 변경, 수정 등의 내용을 체크하여 이벤트를 줄 일이 생겼다.

예를 들어 객체 추가하고 jqueryUI에 있는 datepicker 같은 함수 실행하기?


그래서 찾아보니 아래와 같은 방법으로 처리가 가능하다고 한다.



$(function () {

 

    //datapicker

    //기존에 있는 태그에 이벤트

    $("#divReport").find("input").each(function (i, item) {

        if ($(item).attr("data-inputtype") == "date") {

            $(item).datepicker({

                dateFormat: "yy-mm-dd"

            });

        }

    });

    //datepicer add

    //divReport tag가 추가되었을 때 이벤트

    $("#divReport").on('DOMNodeInserted', 'p', function () {

        console.log("추가");

        var ritem = $(this).find("input")[0];

        if ($(ritem) && $(ritem).attr("data-inputtype") == "date") {

            $(ritem).datepicker({

                dateFormat: "yy-mm-dd"

            });

        }

    });

    //datepicker tag change

    //divReport의 태그가 변경 되었을 때 이벤트

    $("#divReport").bind("DOMSubtreeModified", function (e) {

        //alert("qusrud");

        //e.target <-- this should be what you are looking for

        console.log(e.target);

        var target = $(e.target);

        if (target.get(0).tagName.toLowerCase() == "p") {

            var ritem = target.find("input")[0];

            if ($(ritem).attr("data-inputtype") && $(ritem).attr("data-inputtype") == "date") {

                $(ritem).datepicker({

                    dateFormat: "yy-mm-dd"

                });

            }

        }

    });

 

 

});





Posted by motolies
,