Después de colocar jquery-ui en el archivo de primera línea seguido del archivo de arranque, sigo recibiendo este error:
Error no detectado: no se pueden llamar métodos en el botón antes de la inicialización; intentó llamar al método 'cargando'.
¿Alguien puede ayudar?
Es causado por el conflicto de los complementos jquery-ui y bootstrap-button. De hecho, el código jquery-ui code js debería ir antes de bootstrap.js, y eso resuelve el problema.
Simplemente coloque los complementos jquery-ui antes de bootstrap.js
Otra solución es agregar esta línea después del arranque:
$.fn.btnBootstrap = $.fn.button.noConflict();y luego al llamar a la carga y reinicio:
$btn.btnBootstrap('loading'); $btn.btnBootstrap('reset');Esta respuesta está básicamente en línea con algunas de las otras respuestas que sugieren: Cargue el arranque al final. Esta respuesta solo agrega más información.
He visto esto cuando uso Bootstrap 2.3.2 y jQuery UI 1.10. Como se describe en el error de arranque #6094 , ambos quieren implementar:
jQuery(selector).button()Y así, el que se cargue en último lugar "gana".
Y específicamente, si jQueryUI se carga en último lugar, entonces este marcado de grupo de botones estándar de arranque 2.3.2 no funciona:
<div class="btn-group" data-toggle="buttons-checkbox"> <button type="button" class="cm-toggle-btn toggles btn btn-mini active" name="foo"> Foo </button> <button type="button" class="cm-toggle-btn toggles btn btn-mini active" name="bar"> Bar </button> </div>(crea un grupo de botones que se parece a esto :)
Cuando hace clic en uno de los botones del grupo de botones, se llama a .button() de jQueryUI y genera el Error: cannot call methods on button prior to initialization; attempted to call method 'toggle' .
Uno puede cambiar el orden y cargar el arranque al final, pero luego $().button() de jQuery UI (y, por lo tanto, .slider() y .dialog() también) dejan de funcionar. :-(
Dado que, lamentablemente, necesitábamos que ambos funcionaran, hicimos esto: por otras razones, fue complicado para nosotros cargar jQueryUI primero, así que alrededor de jQueryUI, pusimos:
<script> let bootstrapButton = jQuery.fn.button; </script> <script src="jqueryUIsource.js"></script> <script> jQuery.fn.jQueryUIButton = jQuery.fn.button; jQuery.fn.button = bootstrapButton; </script> Y luego, en las secciones de la página donde se requería el arranque de jQueryUI, restablezca temporalmente la implementación .button() de jQueryUI (almacenada en jQuery.fn.jQueryUIButton ) como jQuery.fn.button . Es un truco desordenado pero funciona. No creo que podamos hacerlo mejor si queremos cargar ambos en la misma página.
Este codepen demuestra que se puede poner a trabajar.