如何使用 jquery 在不丢失样式和插件(select2)的情况下刷新 div
Posted
技术标签:
【中文标题】如何使用 jquery 在不丢失样式和插件(select2)的情况下刷新 div【英文标题】:How to refresh a div without losing the style and plugin (select2) using jquery 【发布时间】:2021-08-15 09:43:48 【问题描述】:在 html 中,我试图在下面重新加载这个 div;
<select name="test[]" id="test" multiple required
class="select2">
@foreach($tests as $s)
<option value=" $s->id " ( in_array($s->id, $tests) ) ? 'selected="selected"' : '' >
$s->value
</option>
@endforeach
</select>
我正在使用脚本重新加载内容,但失去了 div 的 select2 功能 这是我用来刷新标签的sn-p
$( "#test12" ).load(window.location.href + " #test" );
【问题讨论】:
$('#test12').trigger('change');
根据official docs
这能回答你的问题吗? how to refresh Select2 dropdown menu after ajax loading different content?
它刷新了 div 但不显示更新后的列表以及创建的新内容@Tithira
【参考方案1】:
您需要在每次刷新 div 元素后重新启动 select2 插件。
因为一旦你在你的选择标签上调用 .select2(),select2 就会通过脚本绑定,并且每当你刷新你的选择标签所在的 div 元素时,绑定将被删除,并且它将成为正常的默认选择下拉菜单。所以要再次绑定它,你必须重新绑定它。
您可以尝试这些方法。 $("#test").select2(); 要么 $("#test").select2("refresh");
【讨论】:
【参考方案2】:不过我是新来的;所有这些都不适合我。
我必须获取$( "#test12" )
的值并将新创建的对象从端点推送到$( "#test12" )
值。您现在将拥有所有更新的数据。
【讨论】:
以上是关于如何使用 jquery 在不丢失样式和插件(select2)的情况下刷新 div的主要内容,如果未能解决你的问题,请参考以下文章
在不丢失 Html 样式的情况下更改 NSAttributedString 中的字体大小 - Swift
如何在不使用 jquery 插件的情况下快速跳转到下一部分?