函数仅在更改时加载,我会在文档加载时加载

时间:2017-06-06 08:44:36

标签: php jquery ajax

我对此的了解非常有限,但我认为我遇到的问题是这个功能。它的作用是显示在项目帖子中选择的一些选项。从我看来它只在类别改变时加载。因此,当您编辑此帖子时,除非您将类别更改为另一个,然后还原为所需的类别,否则不会显示此功能。我希望每次都显示它,除了if语句中的那些类别。

请协助......

   $(document).on('change', "#catId", function () {
var optgroups = $(this).children("optgroup[label='Nekretnine'], optgroup[label='Posao'], optgroup[label='Usluge'], optgroup[label='Poljoprivredni oglasi'], optgroup[label='Kućni ljubimci'], optgroup[label='Turizam']");
$(optgroups).each(function(){                               
    if($(optgroups).children("option:selected").length){
        $("#condition-container").html('');
    } else {
        $.ajax({
            url: ajaxURL,
            type: "get",
            data: "request=condition-fields",
            dataType: "html",
            success: function(data) {
                if(data) {
                    $("#condition-container").html(data);
                }
            }
        }); 
    }
});
});

2 个答案:

答案 0 :(得分:2)

您只需要在文档加载时触发更改事件。所以根据你的改变功能把这段代码

$(document).on('change', "#catId", function () {
                var optgroups = $(this).children("optgroup[label='Nekretnine'], optgroup[label='Posao'], optgroup[label='Usluge'], optgroup[label='Poljoprivredni oglasi'], optgroup[label='Kućni ljubimci'], optgroup[label='Turizam']");
                $(optgroups).each(function () {
                    if ($(optgroups).children("option:selected").length) {
                        $("#condition-container").html('');
                    } else {
                        $.ajax({
                            url: ajaxURL,
                            type: "get",
                            data: "request=condition-fields",
                            dataType: "html",
                            success: function (data) {
                                if (data) {
                                    $("#condition-container").html(data);
                                }
                            }
                        });
                    }
                });
            });

            //Trigger change
             $(document).ready(function () {
                 $("#catId").trigger("change");
             });

答案 1 :(得分:0)

嗨,我假设您希望在文档加载和更改时触发该函数,但为此您需要使用2个触发器。

1)你已经有了改变触发器

2)使用$(document).ready()(https://learn.jquery.com/using-jquery-core/document-ready/)包装进行onload。

可能有一个更优雅的解决方案,但我没有JS专家所以这只会让你工作,虽然不是最温和的状态