jQuery select2 con WordPress
Estoy trabajando con jQuery select2 dentro de WordPress.
Tengo una tabla HTML como esta.
Aquí necesito que si el usuario hace clic en “Bob Smith y admin”, se convierta en un menú desplegable “select2” con selección múltiple.
Pero cuando hago clic en él, se ve de la siguiente manera:
y si vuelvo a hacer clic, el menú desplegable se ve así:
Cuando hago clic en cualquier valor, se ve así:
Mi código jQuery es el siguiente:
(function($) {
var states = [];
$(document).ready(function() {
$(".volunteer").on("click", function(event) {
// Verificar si el select ya está cargado
if (!$(this).has("select").length) {
var cellEle = $(this);
var cellId = this.id;
// Rellenar el elemento select
cellEle.html(`<select class="js-example-basic-multiple" multiple="multiple">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
</select>`);
// Inicializar select2
let selectEle = cellEle.children("select").select2();
if(states[cellId]){
// preseleccionar valor existente
selectEle.val(states[cellId]);
selectEle.trigger('change');
}
selectEle.on("select2:close", function(event) {
// Obtener el valor seleccionado
selectedValue = selectEle.select2('data')[0]['text'];
// Actualizar el array
states[cellId] = selectedValue.id;
// Destruir select2
selectEle.select2('destroy');
// Cambiar el html para mostrar solo el valor
cellEle.html(selectedValue.id);
});
}
});
});
})(jQuery)
Mi código HTML es el siguiente:
<td class="volunteer" id="47">Bob Smith y admin</td>
davy.ai
Trabajando con jQuery Select2 en WordPress
Descripción
Como experto en TI especializado en javascript, jquery, wordpress, jquery-select2, se te ha asignado la tarea de trabajar con jQuery Select2 dentro de WordPress. Tienes una tabla HTML en la que necesitas convertir las celdas seleccionadas en un menú desplegable de select2 con selección múltiple cuando se hace clic en ellas. Sin embargo, hay un problema con la apariencia y funcionalidad del menú desplegable. A continuación, se muestra tu código.
Problema
Cuando haces clic en una celda, se muestra un menú desplegable con un aspecto extraño que no funciona como se espera. Cuando haces clic en un valor, cambia la celda para mostrar solo ese valor. El valor preseleccionado no funciona como se pretendía, lo que impide al usuario seleccionar un elemento.
Solución
Tu código de jQuery tiene algunos problemas que deben ser corregidos. Debes:
select
en el código HTML.states
fuera del bloque$(document).ready(function()
para que sea accesible globalmente.on('select2:close')
para manejar opciones múltiples seleccionadas.Aquí está el código de jQuery actualizado:
Aquí está el código HTML actualizado:
Nota: Asegúrate de incluir el complemento select2 y las hojas de estilo en tu configuración de WordPress.