jquery - 另一个范围内的 AlpineJS select2 组件引发错误
问题描述
我在刀片文件中有以下 AlpineJS 组件:
选择.blade.php
<div wire:ignore>
<div
x-data="{value: @entangle($attributes->wire('model'))}"
x-init="$nextTick(() => {
select2 = $($refs.select).select2();
select2.on('select2:select', (event) => {value = event.target.value});
})">
<select x-ref="select"
x-bind:value="value"
{{ $attributes->whereDoesntStartWith('wire:model') }}>
{{$slot}}
</select>
</div>
</div>
然后我把它放在一个 livewire 组件中,以 wire:model 为边界
<div>
<x-backoffice.forms.select wire:model="perPage">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option>
</x-backoffice.forms.select>
</div>
这在页面上有几个 select2 组件可以正常工作,但是如果我将组件包装在另一个 x-data 范围内,我会从 JQuery 收到以下错误:
我需要包装它,因为我必须将 select2 放在模式对话框中,并且我用 alpine 控制可见性。该组件工作正常,但我更愿意避免该消息并知道为什么会发生这种情况。
JQuery 版本是 3.5.1(也尝试使用 2.2.4),select2 是 4.0.13
解决方案
好吧,由于某种原因,如果我发送选择器 ID 而不是 $ref,错误就会消失。
改变了
$($refs.select).select2();
和
$('#id').select2();
然后我通过道具传递 ID。
推荐阅读
- html - 为什么 Sublime Text 上下文菜单被禁用(下图)
- reactjs - MultiSelect 在值状态更改时不更新值(PrimeReact UI)
- python - 从 pyplot.plot 动作的循环中获取 ylim - 只有循环寄存器中的最后一个,其他一切都是 0、1
- javascript - 随着 Firebase RTDB 上的数据发生变化,实时更新 Html 表
- azure-devops - 错误找不到工作项类型产品待办事项项
- html - SVG 图像在 Safari 中未显示正确的字体
- google-cloud-platform - 谷歌云不允许我创建我的第一个具有管理员角色的项目
- java - Javax 验证 API。将父 bean 中的字段添加到验证消息
- npm-install - 卡在 npm install - M1 Mac
- javascript - Vuelidate根据服务器端响应显示错误消息?