小编hap*_*rry的帖子

如何在没有ajax的select2 4.0中启用无限滚动

我正在使用select2自定义数据适配器.提供的所有数据select2都是在网页中本地生成的(因此不需要使用ajax).由于query方法可以生成很多结果(约5k),打开选择框的速度相当慢.

作为一种补救措施,我想使用无限滚动.自定义数据适配器的文档说该query方法应该接收page参数term:

@param params.page应加载的特定页面.这通常在使用远程数据集时提供,远程数据集依靠分页来确定应显示哪些对象.

但事实并非如此:只term存在.我试图返回more: truemore: 1000,但这没有帮助.我想这是因为,默认情况下,如果启用了ajax,则启用无限滚动.

我猜测启用无限滚动将涉及使用amd.require,但我不知道该怎么做.我试过这段代码:

$.fn.select2.amd.require(
    ["select2/utils", "select2/dropdown/infiniteScroll"],
    (Utils, InfiniteScroll) =>
      input.data("select2").options.options.resultsAdapter = 
        Utils.Decorate(input.data("select2").options.options.resultsAdapter, InfiniteScroll)
)
Run Code Online (Sandbox Code Playgroud)

这是咖啡脚本,但我希望它对每个人都是可读的.inputDOM包含选择框的元素 - 我之前做过input.select2( //options )

我的问题基本上是,如何启用无限滚动ajax

javascript jquery jquery-select2 jquery-select2-4

9
推荐指数
4
解决办法
9419
查看次数