好吧,我的代码很简单。我使用的是示例数据,但在我的真实的代码中,当单击select2下拉菜单时,数据需要很长时间来加载,我想包含一个加载微调器,当单击下拉菜单时显示,数据加载完成后隐藏。到目前为止,我还不能让它工作。它在select2被更改或选中时工作,但在单击时不工作。有什么建议吗
<div class="col-sm-3 loader">
<%= select_tag 'clone-application-id', options_from_collection_for_select(@applications, :id, :case_code), prompt: "Please Select", class: "form-horizontal single-select" %>
</div>
<%= image_tag "ajax-loader.gif", id: "loading-indicator", style: "display:none" %>
我的js文件
$('#clone-application-id').select2().on('change', function() {
console.log("ok now what");
$('#loading-indicator').show();
});
2条答案
按热度按时间n3schb8v1#
这个函数在选择“changed”时被调用,而不是在“click”时被调用。这是预期的行为还是只是一个打字错误?也许将它改为“click”可以解决这种情况。
w51jfk4q2#
我有一个关于select2下拉菜单加载微调器的解决方案,用于** AJAX **调用。通过2个简单的函数,我们将在下拉菜单中放置加载图标
添加引用(选择2个下拉CDN)
HTML
添加加载Spiner
此函数用于在下拉列表中添加或显示微调器gif。加载微调器动态创建为html元素并添加到下拉列表中。如果之前已经添加,则只显示在屏幕上。
隐藏加载微调器
添加css
css('display', 'none')
从屏幕中删除使用 AJAX 加载数据
最后,Loading微调器会出现在显示屏上,直到 AJAX 完成