如何从js内部开始单击或更改功能

时间:2011-10-05 17:44:52

标签: javascript jquery

问题是,$('#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);   
}   
    }); 

1 个答案:

答案 0 :(得分:2)

在定义change处理程序之前,您正在触发更改。将您的trigger移到代码块的末尾,它会正常工作。