2013-03-11 5 views
0

imgur가 JSFiddle로 멋지게 보이기를 원하지 않는 이유는 이미지가 올바르게 표시되지 않는다는 것을 의미합니다.상위 디비전을 이동하려면 어떻게해야합니까?

나는 3 개의 옵션 라디오 버튼을 포함하는 여러 개의 Div (개별 ID가있는)가 있습니다. 전체 div를 적절한 상자로 옮기고 싶습니다. 즉, 사용자가 첫 번째 옵션을 클릭하면 전체 라디오 버튼이 High Interest DIV로 이동하고 세 번째 버튼을 클릭하면 #lowI로 이동하고 가운데 버튼을 누르면 뒤로 이동해야합니다. 모든 단일 라디오 버튼에 대해 개별 기능을 생성하여 작동시킬 수 있었지만 3 가지 기능을 만들 수 있어야한다고 생각했습니다. 예, 확인 및 아니요를 클릭하면 상위 div가 적절한 위치로 이동합니다.

$('.no').on("click", function (e) { 
    $("label.no").parent().appendTo("#lowI"); 
    e.preventDefault(); 
}); 

답변

1

을 클릭하면 빈약없는 클래스가 변경이 필요합니다. 라디오 변경 이벤트를 사용합니다. 의미 상으로 훨씬 적합합니다.

$(document).ready(function(){ 
    $("input:radio").change(function() { 
     var tmp = $(this).parent("div").detach(); 

     if($(this).val() == "yes"){ 
      tmp.appendTo('#highI'); 
     } else if($(this).val() == "ok"){ 
      tmp.appendTo('#nI'); 
     } else { 
      tmp.appendTo('#lowI'); 
     } 
    }); 
}); 

fiddle도 참조하십시오. 원래 바이올린은 jQuery를 사용할 수 없었기 때문에 약간 혼란 스러웠습니다. 그것을 포함하거나 아무것도 작동하는 것을 잊지 마세요!

+0

완벽한! 그리고 예 ... 실제로 jQuery를 켜지 않았기 때문에 실제로 "작동하는"코드를 한 곳에서 또는 다른 곳에서 보았을 것입니다. 그러나 이것은 내 시도보다 훨씬 간결하므로 올바른 것으로 표시하고 있습니다! – aslum

1

라디오 버튼을 없음으로 CSS 속성 표시가 있습니다

Here's the latest fiddle

그리고 여기 내 미약 한 jQuery 코드입니다. 따라서 JQuery는 클릭을 처리하지 않습니다.

당신은

$("label.no").on("click", function (e) { 
    $(this).parent().appendTo("#lowI"); 
    e.preventDefault(); 
}); 

EDIT 같은 레이블 뭔가에 클릭을 처리하기 위해 라벨을 asuming 선택기 레이블에는

+0

그래서'class = "yes"'를 입력에서 레이블로 옮기면 어떨까요? 내 목표는 div를 움직이는 3 가지 "함수"를 만드는 것이지 모든 선택에 대해 함수를 가지지는 않는 것입니다. – aslum

+0

예, 클래스를 라벨로 옮기거나 이미지에서 더 잘 움직입니다. 그러나 div로 직접 부모가되지 않기 때문에 이미지로 이동하면 parent() 함수가 변경됩니다. – Ateszki

+0

그러나 여전히'change' 이벤트를 라디오'input's에 등록 할 것이므로'label'을 사용하여'change'를 트리거하고'label'에'click' 이벤트가 아닌) 그것을 듣습니다. –

관련 문제