Evitar colisiones de nombres en plugins jQuery
jueves, 26 de julio de 2012En un proyecto en el que estoy trabajando estoy utilizando el excelente framework HTML/CSS/Javascript Twitter Bootstrap y también jQuery UI. Bootstrap ofrece plugins jQuery para diversos efectos y controles en el interfaz de usuario. Uno de ellos es el plugin button, el cual amplía la funcionalidad de checkboxes, radio buttons y demás. Por otra parte, jQuery UI también proporciona, entre otros el plugin "button", con una funcionalidad y una API diferente.
El problema de utilizar simultáneamente estas dos bibliotecas es que ambas definen el mismo símbolo dentro del listado de plugins de jQuery. Para cualquiera de las dos, la instanciación es igual:
$(elemento).button();
Si hacemos las instanciación del plugin de la manera anterior, obtendremos como resultado el botón de la última biblioteca que hayamos cargado en nuestra página. Por ejemplo, si tenemos esto en nuestro HTML:
...
<script type="text/javascript" src="bootstrap.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.21.custom.min.js"></script>
$(".miboton2").button(); // botón jQueryUI
$(".miboton2").bbutton() // botón Bootstrap

No hay comentarios:
Publicar un comentario en la entrada