개발 Q&A

제목 jQuery에서 클릭이벤트 일 때, 정렬
글쓴이 ci_chobo 작성시각 2012/09/10 17:24:13
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 25250   RSS
ci php jquery 사용언어, mysql 디비

뷰에있는 sort를 클릭 했을 때

(jQuery)
~~.find('#sort').click(function()
{
  클릭이벤트 발생시 움직일 값
}

이런식으로되어있는데 저 sort를 클릭했을 때, 디비에 있는 정보를 보여주는데
$this->db->order_by('test', desc) 이런식으로 되어있습니다

문제없이잘돌아가는데 추가했으면 하는 기능이 있어서..
정렬체크를 한 상태에서 sort를 한번 더 누르게 되면 역순으로 정렬이 나오게 할려고 하는데요

생각한건 임의의 변수에 체크값을 줘서 하면 될 줄 알았는데


클릭이벤트가 발생할 때 이게 체크됬던 값인지 안됬던 값인지 판별을 해야되고...
그러니까 클릭이벤트 발생할 때, jQuery에서 클릭을 할 때 이 상태 값이 눌려졌던 값인지 아니면 처음 눌린값인지를 알아야 할 것 같은데 막상 하려니까 생각이 안나네요

관련 도움말이나 지식좀 얻을 수 있을까요 ?


 다음글 db 쿼리 문제 (9)
 이전글 db 검색시에.. (1)

댓글

큐티카사 / 2012/09/10 17:56:27 / 추천 0
.toggle 을 이용해 보시면 어떨지......
http://api.jquery.com/toggle-event/

(jQuery)
~~.find('#sort').toggle(function()
{
  클릭이벤트 발생시 움직일 값
},function(){
한번더 클릭 발생시 움직일 값
})

ci_chobo / 2012/09/10 18:13:56 / 추천 0
큐티카사님 답변 감사합니다

조언대로 toggle 사용시 첫번째 이벤트 , 두번째 이벤트 , 첫번째 이벤트 ... 이렇게 나오는데

첫번째 이벤트, 두번째 이벤트 모두 form을 submit 시켜서 그런지

첫번째 이벤트가 발생하고 나면 두번째 이벤트가 발생하질 않네요

테스트는 주석처리하고 alert찍어서 했습니다
변종원(웅파) / 2012/09/10 23:25:16 / 추천 0
하나의 히든 필드에 기본 값을 넣어놓고 클릭 이벤트 발생할때 그 필드값도 변경을 해주시면 됩니다.

submit이 일어나면 그 값도 전송이 되고 컨트롤러에서 처리후에 다시 뷰에 그 값을 전달해줘서
표시해주면 됩니다.
ci_chobo / 2012/09/11 08:34:51 / 추천 0
sort_test (기본 값 1) 이라고 가정을 하면, 맨 처음 페이지를 부를 땐 1로 부를텐데요.

클릭 이벤트 발생시 hidden값을 2라고 지정한 다음 submit 시키면 2로 넘어가서 다음 정렬을 가져올 수는 있는뎅..

제가 질문에 포함을 안시켰었네요;;

원하는 방식이 클릭을 할 때 마다 정렬 역정렬 정렬 역정렬  .... 이런식으로 나오게 하고 싶습니다.
웅파님 글을 보고 홀수 짝수해서 나머지가 1이거나 0일때 차이점을 둘 생각을 했었는데 클릭할 때 마다 2가 전송이되니 맨처음말고는 달리 비교할 방법이 없는것 같아서요;
변종원(웅파) / 2012/09/11 09:42:48 / 추천 0
ci_chobo/ 다시 클릭하면 그 히든 값에 1이 들어가게 하면 됩니다. 클릭할때 값이 0,1,0,1로 변경이 되고

히든값을 먼저 변경시키고 submit 하면 변경된 값이 넘어갑니다.
ci_chobo / 2012/09/11 10:44:12 / 추천 0
웅파님 죄송합니다 ㅠㅠ 제가 이해를 잘 못하겠네요

다시 클릭해서 히든 값이 다시 1로 들어가게 하려면 그 과정은 jQuery에서 거쳐줘야 하는거 아닌가요  ? 클릭할때 값을 변환해야하니까요

view 에서 1값을 부르고 , jQuery에서 클릭했을 때 2값을 불러서 셋팅해주고 그 값으로 결과를 리턴하고
그런데 다시 jQuery에서 클릭을 해도 항상 2만 셋팅해주니깐 그러네요
두번 클릭했을 때 실행되게 똑같은 함수를 2개만들어서 가져온 값이 1일때 2로 셋팅을, 2일때 1로 셋팅을 해서 값을  다르게 하는건가요 ?
ci_chobo / 2012/09/11 11:17:49 / 추천 0
아, 저렇게 하니 정렬 역정렬이 됩니다, 다만. 정렬을 해야 하는게 한두개가 아니라.. 코드가 좀 길어질뿐
웅파님감사합니다