내가 <이 > 입력을 선택해야이 그 change
이벤트에 대한 코드입니다의 jQuery .change() 나던 작업
$(document).on("change", "select[id $= 'Type']", function(){
var id = $(this).attr('id');
id = id.replace("Question", "");
id = id.replace("Type", "");
id = id.replace("Option", "###");
var split = id.split("###");
var qno = split[0];
var ono = split[1];
setOptionContentInput($(this).val(), qno, ono);
});
이 완벽하게 작동합니다.
하지만 아래 코드를 $(document).ready()
함수 내부에서 호출하면 작동하지 않으며 그 이유를 알 수 없습니다.
function setOptionContentInput(type, qno, ono){
switch(type) {
case "<?php echo TEXT_OPTION; ?>":
$(".image_option_" + qno + "_" + ono).attr('disabled', 'disabled');
$(".image_option_" + qno + "_" + ono).hide();
$(".sound_option_" + qno + "_" + ono).attr('disabled', 'disabled');
$(".sound_option_" + qno + "_" + ono).hide();
$(".text_option_" + qno + "_" + ono).removeAttr('disabled');
$(".text_option_" + qno + "_" + ono).show(500);
$(".text_option_" + qno + "_" + ono).siblings("label").show(500);
break;
case "<?php echo IMAGE_OPTION; ?>":
$(".text_option_" + qno + "_" + ono).attr('disabled', 'disabled');
$(".text_option_" + qno + "_" + ono).hide();
$(".text_option_" + qno + "_" + ono).siblings("label").hide();
$(".sound_option_" + qno + "_" + ono).attr('disabled', 'disabled');
$(".sound_option_" + qno + "_" + ono).hide();
$(".image_option_" + qno + "_" + ono).removeAttr('disabled');
$(".image_option_" + qno + "_" + ono).show(500);
break;
case "<?php echo SOUND_OPTION; ?>":
$(".text_option_" + qno + "_" + ono).attr('disabled', 'disabled');
$(".text_option_" + qno + "_" + ono).hide();
$(".text_option_" + qno + "_" + ono).siblings("label").hide();
$(".image_option_" + qno + "_" + ono).attr('disabled', 'disabled');
$(".image_option_" + qno + "_" + ono).hide();
$(".sound_option_" + qno + "_" + ono).removeAttr('disabled');
$(".sound_option_" + qno + "_" + ono).show(500);
break;
default:
}
}
아무도 도와 드릴까요 : 여기
$(document).ready(function() {
$("select[id $= 'Type']").change();
});
는
setOptionContentInput()
기능입니다? 고마워.
$(document).ready();
작동하지 않는 경우
$(document).ready(function() {
$("select[id $= 'Type']").change(function(){
// call the function you want with necessary parameters
});
});
가 이벤트를합니까 핸들러가 적어도 호출 되었습니까? '.change()'를 호출하기 전에 * 이벤트 핸들러를 바인딩하고 있습니까? 또한 "의미가 없다"는 것을 명기하십시오. 일부 디버깅을하고, 이벤트 처리기가 호출되는지 여부를 테스트하고, 예인 경우 선택 요소가 그 순간에 갖는 값 등을 확인하십시오. –
안녕하세요, 저는 이미 지금 당장이를 수정했습니다. $ ("select [id $ = 'Type']"). 변경(); CakePHP 및 .image_option_, .sound_option_ 및 text_option_ div는 CakePHP 요소의 다른 파일에 있습니다. 문제는 아마 $ (window) .load (function() {})에 있습니다. (문서) .ready (function() {}) 다른 파일에서 이러한 입력을 기다리지 않습니다. 내 영어에 대한 죄송합니다 :) – Johny
그 문제가 안된다 ... 출력은 전체적으로 생성 된 다음 브라우저로 전송됩니다. . 하지만 진술의 순서가 엉망이 됐을 수도 있습니다. 솔루션을 답변으로 제공하고 문제가 무엇인지 자세히 설명하십시오 (실제 이유를 찾아야합니다). 또는 질문을 삭제하십시오. –