Tiene problemas para trabajar con instancias de SelectWoo de Select2 dentro de WooCommerce

1 minuto de lectura

avatar de usuario
Brett

Estoy usando Select2 dentro de WooCommerce en algunas de mis propias áreas personalizadas y lo estoy apuntando con un código para agregar y eliminar ciertas clases y funciona bien excepto por el Seleccione Woo las instancias utilizadas por WooCommerce no agregan la clase usando el.addClass('has-selection'); en el ejemplo proporcionado.

Código de ejemplo:

(function($) {
     $('select').each(function(e) {
        handleSelectSelections($(this));
    });
})( jQuery );

function handleSelectSelections(select) {
    var el = (select.next('.select2').length) ? jQuery(select.data('select2').$container) : select;

    if (select.val() !== "" && select.val() !== null) {
        el.addClass('has-selection');
    } else {
        el.removeClass('has-selection');
    }
}

Todo funciona bien, excepto cuando llega a la parte real donde agrega la clase, no funciona, no se agrega ninguna clase.

¿Me estoy perdiendo de algo?

  • ¿Imprimiste select.val()?

    – grande

    31 de mayo de 2019 a las 2:23

  • @bigless Sí, el valor es correcto.

    – Brett

    31 de mayo de 2019 a las 11:53

  • ¿Cuál es el resultado de el? ¿No hay error en la consola?

    – Romuleald

    8 de junio de 2019 a las 7:37

  • Debería handleSelectSelections ¿Activar en el cambio de selección, o solo una vez? No puedo ayudar sin un ejemplo de trabajo, ¿tiene una página en línea?

    – skobaljic

    9 de junio de 2019 a las 10:01

  • @romuleald Correcto, solo genera el elemento como se esperaba.

    – Brett

    9 de junio de 2019 a las 13:11

¿Ha sido útil esta solución?