问题是,$('#menu').val(menu).trigger('change');
和$('.parentcheck').val(0).attr('checked', true).trigger('click');
会更改其状态,但不会触发其功能$("#menu").change(function () {
和$(".parentcheck").click(function () {
。如何处理这个问题?
我的js代码看起来像
$(document).ready(function () {
$("#parent").hide();
$(".parentcheck").click(function () {
if ($(this).val() === "0") {
$("#parent").hide().find('option:selected').removeAttr('selected');
}
if ($(this).val() === "1") {
if ($("#parent option").length > 0) {
$("#parent").show();
}
}
$("#menu").change();
});
$("#menu").change(function () {
var selectedmenu = $("#menu").val();
var parentcheck = $(".parentcheck:checked").val();
if (selectedmenu != '' && selectedmenu != '0') {
$.ajax({
type: "POST",
url: "processor/optionsgenerator.php",
data: {
menu: selectedmenu
},
success: function (result, status, xResponse) {
if (result != '') {
if (parentcheck == '0' || !$(".parentcheck").is(":checked")) {
$("#parent").hide();
} else {
$("#parent").html(result);
$("#parent").show();
}
} else {
alert('Baza ilə əlaqədə problem var.');
$("#parent").hide();
}
},
error: function (e) {
alert(e);
}
});
} else $("#parent").hide();
});
$('#menu').val(menu).trigger('change');
if(parent==0) {
$('.parentcheck').val(0).attr('checked',true).trigger('click');
}
else {
$('.parentcheck').val(1).attr('checked',true).trigger('click');
$('#parent').val(parent);
}
});
答案 0 :(得分:2)
在定义change
处理程序之前,您正在触发更改。将您的trigger
移到代码块的末尾,它会正常工作。