2011-01-22 5 views
0

매우 새로운 기능 javascript 및 jquery.사용자가 체크 박스를 표시 할 때 jquery 동작을 트리거

<label for="editable">Editable </label><input name="editable" type="checkbox" id="edita"/> 

그리고이 JQuery와 액션 : :이 확인란을

$('#slickbox1').toggle(400); 
return false; 

내가 확인란을 선택하면 해당 작업을 실행합니다. 감사!

+1

당신은 재 할 수 있습니다 당신의 HTML을해라. INPUT의 ID가 "edita"인 경우 LABEL의 FOR가 "edita"와 같아야합니다. 지금은 라벨이 다르기 때문에 레이블을 클릭하면 확인란이 활성화되지 않습니다. – mg1075

답변

3

당신이 시도 할 수 :

$('#edita').change(
function() { 
    if ($(this).is(':checked')) { 
     $('#slickbox1').toggle(400); 
    } 
}); 

을 그것을 체크있어에만 toggle() 방법을 실행 (이되지 않은 검사 시작합니다 가정) 지적 가치의 입력을 클릭하면 사용자를 포함하지만 일단을 보여 체크를 다시하고 을 다시으로 다시 체크하여 toggle()의 결과로 숨 깁니다.

그것은 고려 가치가있을 수도 있습니다 : 체크 상자를 선택하면$('#slickbox1')을 보여주고, 그렇지 않은 경우를 숨 깁니다

$('#edita').change(
function() { 
    if ($(this).is(':checked')) { 
     // checked 
     $('#slickbox1').show(400); 
    } 
    else { 
     // un-checked 
     $('#slickbox1').hide(400); 
    } 
}); 

,

또는 :

$('#edita').change(
function() { 
     $('#slickbox1').toggle(400); 
}); 

$('#slickbox1')을사이로 토글합니다.210 및 hide()으로 설정합니다. input을 선택하고 선택을 취소합니다. 의견 DomingoSL (영업)에 의해 제기 된 질문을 해결하기 위해을 편집


: 지금 triger가 아닌 경우

... 당신이 절차를보고 편집을 확인하시기 바랍니다 수 있습니다 체크 박스가 아니라 버튼? 대신 click()를 사용하는 것, 그래서

  1. button, 아니 change 사건이 없으며,
  2. button:checked가 없습니다 :

이 수용 할 수 있도록 할 필요가 두 가지 변화가있다 (또는 이에 상응하는) 상태이므로 if/else이 중복됩니다. 당신이 반대로 어떤 정보를 게시하지 했으므로

하나는하지만, 그것을하는 방법, 나는 당신의 요소 이름을 믿고있어이며, 동일하게 유지 :

$('#edita').click(
function(){ 
    $('#slickbox1').toggle(400); 
}); 
+0

고마워요! 많이! 매우 끈적한 대답, triger가 체크 박스가 아니라 버튼이라면 절차를보기 위해 편집을 할 수 있습니까? – DomingoSL

+1

@DomingoSL :'change' 대신'click'을 사용합니다. 진실하게, 설명서를 읽으십시오 : http://api.jquery.com/ 예제가 많습니다. –

+0

@DomingoSL : @Felix 메모와 마찬가지로 jQuery 문서에는 많은 예제가 있습니다. [click()'에 대한 참조는 여기에 있습니다.] (http://api.jquery.com/click/). 컴퓨터에서 멀리 떨어져 있습니다 (내일 아침까지, 영국에서). 그러나 도움이 필요하면 추가 할 수 있으면 최대한 빨리 도와 드리겠습니다. –

관련 문제