我<選擇>輸入,這是代碼爲它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()
函數內調用下面的代碼時,它不起作用,我不知道爲什麼。
$(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元素具有哪個值,等等...... – 2012-04-16 11:45:47
你好,我現在已經修復了它。我放置了$(「select [id $ ='Type']」)。到$(window).load(function(){}現在它工作。我使用CakePHP和.image_option_,.sound_option_和text_option_ divs在另一個文件中(在CakePHP元素中)。所以問題可能是,$ (document).ready(function(){})不會等待來自其他文件的這些輸入。對不起,我的英語:) – Johny 2012-04-16 11:56:34
這應該不是問題...輸出是作爲一個整體創建的,然後發送到瀏覽器。但也許這些陳述的順序搞砸了。要麼提供你的解決方案作爲答案(一旦你可以),並詳細描述出了什麼問題(你應該確保你找出實際的原因)或刪除你的問題。 – 2012-04-16 11:58:43