< У меня есть выбор > входа и это код для его change
события:JQuery .Кнопки() не работает
$(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()
, он не работает, и я не знаю почему.
$(document).ready(function() {
$("select[id $= 'Type']").change();
});
Вот setOptionContentInput()
функция:
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:
}
}
Может кто-нибудь помочь? Спасибо.
ли событие обработчик вызывается как минимум? Вы привязываете обработчик событий до *, вы называете '.change()'? Также укажите, что означает «не работает». Проведите некоторую отладку, проверьте, вызван ли обработчик события, если да, какое значение имеет элемент выбора в данный момент и т. Д. –
привет, я уже исправил его прямо сейчас. Я поместил $ ("select [id $ = 'Тип']"). Change(); в функцию $ (window) .load (function() {}, и теперь она работает. Я использую CakePHP и .image_option_, .sound_option_ и text_option_ divs в другом файле (в элементе CakePHP). Таким образом, проблема была, вероятно, в том, что $ (document) .ready (function() {}) не ждет этих входов из другого файла. Извините за мой английский :) – Johny
Это не должно быть проблемой ... вывод создается в целом и затем отправляется в браузер , Но, может быть, порядок выступлений перепутался. Либо предоставите свое решение в качестве ответа (как только сможете), так и подробно опишите, что пошло не так (вы должны убедиться, что вы выяснили фактическую причину) или удалить свой вопрос. –