繁体   English   中英

ajax后不再工作的jQuery select2

[英]jquery select2 after ajax not working anymore

我在div上的站点上有一个简单的select2控件。 网站加载后,一切正常。 但是,如果将Select2所在的div的simpleDiv的html内容加载了Ajax,则Select2在触发时不再显示结果。 这意味着,在这种情况下,Select2数据是从服务器获取的,但从未在Select2中显示。 这一切仅在Ajax加载“ simpleDiv” html内容时发生。 否则,一切正常。

有人可以帮忙吗?

<div id='simpleDiv'>

<input type="hidden" id="MedikamentID" name="MedikamentID" class="fixed-width4" />

</div>

<script>
 $('#MedikamentID').select2({
                    placeholder: "[Medikament]",
                    allowClear: true,
                    minimumInputLength: 2,
                    ajax: {
                        url: "/Medikament/List",
                        dataType: 'json',
                        data: function (term, page) {

                            return {
                                query: term
                            };
                        },
                        results: function (data, page) {

                            return { results: data };
                        }
                    }
                });

</script>

每当您使用.html().innerHTML更改时,从本质.innerHTML ,DOM都会被重建,并且所有附加到它们的javascript事件和属性都将丢失。 但是解决方法很简单。 完成插入新HTML后,只需再次调用Select 2。 所以像这样:

$.ajax("example.php").done(function(data){
   $("#simpleDiv").html(data)
   $("#MedikamentID").select2(...) //rebuild select2
})

我附加了一个jsfiddle来说明这一点: http : //jsfiddle.net/HT3rP/1/

如果我的问题正确无误,则可能是与此Stackoverflow问题相关的类似问题

你可以尝试这样的事情

$(document).on("ready", "#MedikamentID", function () {
    $(this).select2({
       // options go here
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM