在ajax加载的内容上触发更改和加载事件

时间:2017-02-12 13:51:09

标签: javascript jquery ajax

我有一个代码,它在选择框#type的更改事件上运行为id。该元素在bootstrap模式窗口中通过ajax加载。它通过显示/隐藏相关元素并触发ajax请求,在更改事件上正常工作。

现在我想每次都运行它,除了更改事件之外还加载ajax内容,因为有时会为#type元素加载默认值并且我想显示/隐藏元素并触发ajax请求ajax内容加载那个时间。

我尝试使用load这样的事件,

$(document).on('load change', '#geo-form #type', function () {...

但是id不起作用。我怎样才能做到这一点。

这是默认的工作代码,截至目前。

$(document).on('change', '#geo-form #type', function () {
    var value = $(this).val();
    console.log(value);
    if (value == '') {
        $.getJSON(url('ajax/divisions'), null, function (data) {
            $("#geo-form #division_id").html('');
            $("#geo-form #division_id").append(
                $("<option></option>").text('Select one').val('')
            );
            $.each(data, function (id, name) {
                $("#geo-form #division_id").append(
                    $("<option></option>").text(name).val(id)
                );
            });
        });
    }
    switch (value) {
        case 'district':
            $('#geo-form .division').removeClass('hide');
            $('#geo-form .district').addClass('hide');
            $('#geo-form .tehsil').addClass('hide');
            $('#geo-form .block').addClass('hide');
            break;
        case 'tehsil':
            $('#geo-form .division').removeClass('hide');
            $('#geo-form .district').removeClass('hide');
            $('#geo-form .tehsil').addClass('hide');
            $('#geo-form .block').addClass('hide');
            break;
        case 'block':
            $('#geo-form .division').removeClass('hide');
            $('#geo-form .district').removeClass('hide');
            $('#geo-form .tehsil').removeClass('hide');
            $('#geo-form .block').addClass('hide');
            break;
        case 'village':
            $('#geo-form .division').removeClass('hide');
            $('#geo-form .district').removeClass('hide');
            $('#geo-form .tehsil').removeClass('hide');
            $('#geo-form .block').removeClass('hide');
            break;
    }
});

1 个答案:

答案 0 :(得分:0)

您可以在重新创建时手动trigger

$("#geo-form #division_id").trigger('change');