2012-05-08 4 views
1

확인란을 선택하면 실행하려는이 코드가 있습니다. b) 페이지로드에서 실행되어 기본적으로 숨겨진 섹션을 확장해야합니다.onload 및 변경을 확인하는 하나의 이벤트 만들기

$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     if ($(this).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }); 
}); 

위의 내용에 load 이벤트를 추가하려고 시도했지만 트리거되지 않았습니다.

는 나는이 비슷한 뭔가를 할 수 알고 그것을 작동합니다 :

$(document).ready(function() { 
    noAddress($('#hasContractorFlag')) 

    $('#hasContractorFlag').on('change', function() { 
     noAddress($(this)); 
    }); 

    function noAddress(var field) { 
     if ($(field).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }; 
}); 

는 이러한 목표를 달성 할 수있는 가장 좋은 방법은 무엇입니까?

답변

5

문서에 당신의 방법 준비에 당신이 .change();를 추가하는 경우, 그 다음 호출합니다 너의 방법.

jsFiddle : http://jsfiddle.net/UQDaW/5/

$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     if ($(this).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }).change(); // .change() will execute this method 
}); 
+1

변경 이벤트의 생성 위에 trigger('change') 체인하여이를 달성, 나는 똑같은 거 포스트이었다 . +1 그냥 작은 팁, 당신은'$ ('# hasContractorFlag')'를 호출하는 대신'.on' 뒤에'.change'를 묶을 수 있고 그러한 경고를 죽일 수 있습니다. –

+0

@Vega 좋은 전화, 내가 일치하도록 코드를 변경했습니다. 감사. :) –

+0

이제 3 단계에서/else를 랩하는 것만으로하면됩니다 .-) ..... – adeneo

0

당신이 시도 할 수 있습니다 :

function noAddress(field) { 
    field.is(':checked') ? $('#hasContractor').show() : $('#hasContractor').hide(); 
}; 

을 모두 함께 :

$(document).ready(function() { 
    $('#hasContractorFlag').on('change load', function() { 
     noAddress($(this)); 
    }); 
    function noAddress(field) { 
     field.is(':checked') ? $('#hasContractor').show() : $('#hasContractor').hide(); 
    } 
}); 

DEMO

0
$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     $('#hasContractor')[$(this).is(':checked')?'show':'hide'](); 
    }).change(); 
}); 
2

나는 보통이 길을 가야하는 것입니다

$(document).ready(function() { 
    $('#hasContractorFlag').on('change', function() { 
     if ($(this).is(':checked')) { 
      $('#hasContractor').show(); 
     } else { 
      $('#hasContractor').hide(); 
     } 
    }).trigger('change'); 
}); 
관련 문제