개발 Q&A

제목 ajax내부문서에서 jquery사용질문
글쓴이 헛발이2 작성시각 2012/11/29 10:19:41
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 19013   RSS
아직도 이해가 잘 안가는 부분이 있네요...
지난번에 질문했을때도 웅파님께서 이야기 해 주셨지만.. 그래도 의문이 생겨서 다시 질문 합니다.


예를 들어서 일반적인 view에서 버튼을 하나 만들고 그 버튼을 클릭하면 이라는 jquery로가서
ajax로 다른 view를 불러와서 현재view에 끼워 넣기를 합니다..

하지만 그 끼워 넣은 view에 또다른 버튼이 있습니다..
그 버튼을 클릭하여 다시 ajax로 다른 작업을 또 하려는게 목적입니다..

이 형태는 뭘 만들려구 하는거냐 하면요...

게시판에서 댓글을 수정하는 부분입니다..
즉 댓글 목록에서 해당 댓글의 수정버튼을 클릭하면 현재 댓글의 글 div를 지우고 그안에 입력폼을 끼워 넣기 하고
끼워 넣기한 폼에서 글을 수정한 다음 다시 저장버튼을 클릭해서 ajax로 저장 처리를 하고
다시 view의 입력형태를 원래대로 돌려 주려는게 하려고 하는 목적입니다..

쉽게 ajax로 하지 않고 수정버튼을 클릭하면 다른 화면으로 가거나 해도 되고 방법이야 많겠지만..
의도 하려는 형태는 jquery로 ajax로 처리 하고 싶은게 목적입니다...

근데 문제는 끼워 넣기한 view에서 원래의 view에 있는 jquery를 이용할수 없는것이 의문점입니다..
테스트를 해 보니 끼워넣기하는 view에서 원래view에서 정의한 스크립트를 사용할수 없고...
끼워넣기하는 view에서 직접 <script.... 를 넣어도 스크립트라는것만 있어도 문제가 되더군요..

끼워넣기에서 되는건 onclick 같은것을 직접 버튼에 주면 그건 되더군요....

정말 onclick와 같은 형태밖엔 사용못하는건지...

사실 ajax로 폼형태를 다들 많이 사용할듯 싶은데요...
다들 어떻게 하시나요?

인터넷을 찾아 보려구 해도 어떤 검색어로 검색해야 하는지 ...
별루 검색이 잘 안되네요...
 다음글 .htaccess 문의드립니다. (2)
 이전글 div를 감추고 싶은데요~ (5)

댓글

템포 / 2012/11/29 10:34:54 / 추천 0
질문을 잘 이해한지 잘 모르겠지만.. 이해한 토대로 제가 사용한 방법 적어보자면

View -> jQuery (ajax -> controller -> model -> 데이터를 가져올 때 json_encode로 뿌려줌 )

ajax로 받고 처리하는 과정에서 ex) 값이 OK라면

받은 데이터를 each문 돌립니다. (여기서 가져오는 데이터는 해당 글의 모든 리플 (수정이든 삭제했든 후에)
그리고 그 리플 영역부분 전체를 empty().append();
모든 영역을 지우고 , each문 돌린 데이터를 append시켜주면 해당 글의 리플이 다 들어가게 됩니다.

또 다시 수정하게 되면 처음 부분에 있는 View부분을 타게 되니 반복이 될 거예요
저도 몇일전에 연습해본거라....
milosz / 2012/11/29 10:51:57 / 추천 0
 live() 메소드로 해결할 수 있습니다. click()과 같은 것으로 트리거를 만들면 현재 문서에 존재하는 엘리먼트에만 트리거가 생겨나는데 live를 쓰면 존재하지 않던 엘리먼트가 생겨나도 동작합니다. 즉 새로 불려질 때마다 선언을 안해줘도 되는거죠.
 
$(".update_btn").live("click",function(){
    alert("update!");
});
 
이렇게 틀이 되는 view에 선언해주시면 이후 불려오는 모든 .update_btn에 해당 클릭질(...) 이 가능합니다.
헛발이2 / 2012/11/29 10:56:15 / 추천 0
오~~~
마이~~~
갓~~~~

되네요~~~되요~~~

live !!!!!


이제 맘껏 클릭질을... ㅋㅋㅋ
milosz  템포님 답변 감사합니다..
한대승(불의회상) / 2012/11/29 10:58:00 / 추천 0
오... 좋은 질문과 답변 모두 감사 합니다.

한 수 배웠습니다. ^^
으아아 / 2012/11/30 12:35:45 / 추천 0
 아무생각 없이 클릭한건데 한수 배웠네요!

live... live...

저런 좋은게 있었다니 !
박순철 / 2012/12/07 11:36:27 / 추천 0

live -> delegate -> on