首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMD / select2行为障碍?

AMD / select2行为障碍?
EN

Stack Overflow用户
提问于 2019-08-09 16:29:49
回答 1查看 398关注 0票数 0

我试图在这里修改select2 2/ AMD示例:https://stackoverflow.com/a/31600521/567736,我不确定我遇到的问题是否与select2有关,还是我误解了AMD。我的代码:

代码语言:javascript
复制
$.fn.select2.amd.define("InlineSearchSelectionCustomAdapter", [
    "select2/utils",
    "select2/selection/multiple",
    "select2/dropdown/search",
],
    function (Utils, MultipleSelection, Search) {
        let adapter = Utils.Decorate(
            MultipleSelection,
            Search
        );

        return adapter;
    }
);

$.fn.select2.amd.require([
    'select2/selection/multiple',
    'select2/selection/search',
    'select2/utils',
    'InlineSearchSelectionCustomAdapter'
], function (MultipleSelection, Search, Utils, InlineSearchSelectionCustomAdapter) {

    let SelectionAdapter = Utils.Decorate(
        MultipleSelection,
        Search
    );

    $('.inline-search-original').select2({
        selectionAdapter: SelectionAdapter
    });

    $('.inline-search-amd').select2({
        selectionAdapter: InlineSearchSelectionCustomAdapter
    });
});
代码语言:javascript
复制
.select2-selection__choice__remove {
    display: none !important;
}

.select2-container--focus .select2-autocomplete .select2-selection__choice {
    display: none;
}
代码语言:javascript
复制
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet" />

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.full.js"></script>

<p>With an inline search box, original</p>
<select style="width: 200px" class="inline-search-original" multiple>
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
    <option value="AZ">Arizona</option>
</select>

<p>With an inline search box, using amd</p>
<select style="width: 200px" class="inline-search-amd" multiple>
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
    <option value="AZ">Arizona</option>
</select>

如您所见,我正在尝试将SelectionAdapter重构为一个单独的模块InlineSearchSelectionCustomAdapter。但是,我的新<select>的外观和行为与最初的堆栈溢出帖子不同。

为什么行为不同,如何纠正我的错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 16:07:33

导入select2/selection/search而不是select2/dropdown/search

代码语言:javascript
复制
$.fn.select2.amd.define("InlineSearchSelectionCustomAdapter", [
    "select2/utils",
    "select2/selection/multiple",
    "select2/selection/search",
],
    function (Utils, MultipleSelection, Search) {
        let adapter = Utils.Decorate(
            MultipleSelection,
            Search
        );

        return adapter;
    }
);

$.fn.select2.amd.require([
    'select2/selection/multiple',
    'select2/selection/search',
    'select2/utils',
    'InlineSearchSelectionCustomAdapter'
], function (MultipleSelection, Search, Utils, InlineSearchSelectionCustomAdapter) {

    let SelectionAdapter = Utils.Decorate(
        MultipleSelection,
        Search
    );

    $('.inline-search-original').select2({
        selectionAdapter: SelectionAdapter
    });

    $('.inline-search-amd').select2({
        selectionAdapter: InlineSearchSelectionCustomAdapter
    });
});
代码语言:javascript
复制
.select2-selection__choice__remove {
    display: none !important;
}

.select2-container--focus .select2-autocomplete .select2-selection__choice {
    display: none;
}
代码语言:javascript
复制
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet" />

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.full.js"></script>

<p>With an inline search box, original</p>
<select style="width: 200px" class="inline-search-original" multiple>
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
    <option value="AZ">Arizona</option>
</select>

<p>With an inline search box, using amd</p>
<select style="width: 200px" class="inline-search-amd" multiple>
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
    <option value="AZ">Arizona</option>
</select>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57434026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档