2010-08-05 15 views
9

Estoy tratando de aplicar un icono a un botón de estilo de IU de jquery en mi aplicación Rails. ¡El botón tiene un estilo correcto pero no puedo mostrar los iconos! ¿Alguien podría darme alguna sugerencia? ¡Me estoy tirando de los pelos!Botón de IU de JQuery Los iconos no muestran

que he hecho lo siguiente:
1) copió los archivos javascript (jquery-1.4.2.min.js y jquery-ui-1.8.2.custom.min.js) a público/javascripts
2) Copiado todo el directorio de temas suavidad a bajo pública/css
3) Se ha añadido el siguiente código al archivo de diseño para incluir los archivos relevantes:

<%=stylesheet_link_tag 'smoothness/jquery-ui-1.8.2.custom', :media => 'screen, projection'%> 
<%=javascript_include_tag 'jquery-1.4.2.min', 'jquery-ui-1.8.2.custom.min', 'application'%> 

4) Se ha añadido una clase de 'salvar' a la tecla I querer estilo:

<%= submit_tag 'Save Changes', :class => 'save' %> 

5) Se ha añadido la siguiente al archivo application.js:

$(document).ready(function() { 
    $(".save").button({ icons: {primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'} }); 
}); 

(Hasta que no tenga que trabajar, el código en el paso 5 es copiado y pegado de los documentos - acabo de modificar el selector)

El botón retoma el estilo del tema, pero no tengo suerte para mostrar los íconos, ¿me perdí un paso?

Muchas gracias,
Ash

+0

está ahí carpeta '' images' en sus archivos ui .css'? – Reigel

+0

Tengo la carpeta de imágenes dentro del directorio de suavidad - por lo que las rutas relativas para las imágenes en el CSS deben ser correctas (en teoría!) – Ash

+0

Si ayuda - la siguiente es la fuente generada como se muestra en el navegador: Ash

Respuesta

18

No sé si hay un error en la interfaz de usuario jQuery para convertir input type="submit" elementos de jQuery UI botones, pero cuando cambié el margen de beneficio para rendir un elemento <button> en lugar de un <input type="submit" .../>, funcionó:

<button type="submit" class="save">Save Changes</button>

por supuesto, acabo de hacer esto con HTML estático, no Ruby on Rails. Honestamente, soy desarrollador C#/ASP.NET MVC, por lo que no estoy seguro si puede renderizar un elemento de botón usando RoR. Si puedes, tal vez esa es la dirección que debes tomar por ahora en caso de que sea un error de jQuery UI.

Pude volver a crear el problema con HTML estático con el uso de un elemento de envío de entrada. Funcionó una vez que cambié a un control HTML <button>.

Espero que esto ayude!

+5

Muchas gracias. Supuse que era algo que estaba haciendo mal. He revisado la documentación de JQuery UI con más detalle y he observado: "Cuando se utiliza una entrada de tipo botón, enviar o restablecer, el soporte se limita a las etiquetas de texto sin ningún ícono".Por lo tanto, tenga en cuenta leer por sí mismo toda la documentación, ¡no solo el código! – Ash

+0

Los elementos HTML de 'entrada' no pueden contener íconos, entonces sí, debería usar un elemento 'button' en su lugar. –

Cuestiones relacionadas