나는 모든 곳에서 찾고 있어요 그리고 난 단지 라디오 버튼 리스너를 만드는 방법을 찾을 수 있습니다 또는 어떻게 ready
에서 확인할 것 있는지 확인하지만 모두 내가 필요한처럼 결코 :변경 사항이있는 라디오 단추와 jQuery로 문서 준비가 된 시점을 들어보십시오.
내가 따라 형태의 개체를 편집하지 않을 때 라디오 그룹에서 선택된 내용에 div
을 표시하거나 숨겨야합니다. 그리고 사용자가 그것을 변경하면 다시 나타나거나 사라집니다.
내가 div
에 서버 측에 숨겨진 클래스를 추가하여 올바른 상태를 초기화 할 수 그러나 내가 AJAX를 사용하지 않는 때문에 PHP와 jQuery를 내 모든 종속성을 프로그램 할 것 - 그것은하지 않습니다 나에게 의미가있다.
jQuery 웹 사이트에서 가장 좋은 방법을 찾아 보았습니다. this 인 것으로 보입니다.
그러나 나는 내 경우에 어떻게해야하는지 이해하지 못합니다. $(this)
이 작동하지 않는 것 같아요. 이유를 정확히 알지 못합니다. 내가 이벤트 밖에서 함수를 참조하고 있기 때문에?
var fieldHider = function (turnOn, toggleFields, fadeIn) {
var visibilityAction;
if (turnOn) {
visibilityAction = (fadeIn) ? "fadeIn" : "show";
} else {
visibilityAction = (fadeIn) ? "fadeOut" : "hide";
}
$(toggleFields)[visibilityAction]();
};
var translatorRadioChanged = function (event) {
var isOn = ($(this).val() === '1');
var fading = (event) ? true : false;
fieldHider(isOn,'label[for="translator"]', fading);
};
var translatorRadioNames = "translatorNeeded";
$(function() {
$("input[name='" + translatorRadioNames + "']").change(translatorRadioChanged);
translatorRadioChanged();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label for="translatorNeeded">
Translator needed
<input type="radio" value="1" name="translatorNeeded">
Yes
<input type="radio" value="0" checked="checked" name="translatorNeeded">
No -> Div below should be hidden!
</label>
<br>
<br>
<label for="translator">
<label class="lcapp-label clearfix" for="translator">
Translator Name + Language
<input type="text" name="name" size="5">
<input type="text" name="lang" size="5">
</label>
</label>
내가 대답을 좋아하지만 난 그냥 당신의 변화에이 코드를 실행하면 그것은'translatorRadioChanged'를 발생 것으로 나타났습니다 처음에는 true로, false로 두 번 작동합니다. 그것에 대해 무엇입니까? –
은 컬렉션의 각 요소에 대해 실행됩니다. 나는 정말로 핸들러 내부의 내용을 자세히 분석하지 않았다 ... 컨텍스트에 더 초점을 맞추었다. – charlietfl
또 다른 방법은'.change (translatorRadioChanged) .filter (': checked'). change();' – charlietfl