Tengo un botón que yo uso con jQueryUI somethink como este (simplificado).

<button id="mybutton">Play<button>
<script>
$("#mybutton").button().toggle(
    function(){
       $(this).text('Stop');
    },
    function(){
       $(this).text('Start');
    },
);
</script>

Este código se rompe la forma en que el botón se ve porque cuando en el botón de widget, hay un nuevo tramo añadido en el interior del botón. Así que voy a cambiar el valor del botón como esta ahora

$(this).find('span').text('Stop');

Este es chapucero porque no puedo tratar el botón como una caja negra y tiene que ir en el interior.

Hay una manera correcta de hacer esto?

InformationsquelleAutor Andrei R | 2010-04-19

6 Comentarios

  1. 63

    Tal vez usted podría utilizar el label opción de la interfaz de usuario jQuery botón ahora en su lugar?

    $("#mybutton").button().toggle(function() {
       $(this).button('option', 'label', 'Stop');
    }, function() {
       $(this).button('option', 'label', 'Start');
    });

    jsbin vista previa aquí

    • Gracias. Esto hace el truco.
    • para mayor claridad, usted también puede hacer algo como esto: $(this).button({label:'Stop',icons:{secondary: "ui-icon-circle-close"}}); Esto es útil si desea cambiar otras cosas, tales como el icono, etc.
  2. 6

    Puede utilizar el .botón(«actualizar») método después de modificar el texto.

    $("#mybutton").botón().alternar( 
    la función(){ 
    $(this).texto ("Stop").botón("actualizar"); 
    }, 
    la función(){ 
    $(this).texto('Inicio').botón("actualizar"); 
    }, 
    ); 
    

    http://jqueryui.com/demos/button/#method-refresh

    • gracias, pero esto tampoco funciona
    • incluso traté de fingir que estoy creando el botón de cero y aún así no funciona $(this).texto(‘Inicio’); $(this).botón(); Rompe el botón de
    • Esto funciona, pero parece que para quitar el resto de las propiedades existentes en el botón.. Gnarf la respuesta parece trabajar mejor si todo lo que quiero hacer es cambiar el texto, dejando el resto de propiedades solo.
  3. 3

    después de llamar .botón() para crear una interfaz de usuario jQuery botón, el texto parece ser removido de la original elemento de botón y se coloca en un <span class = ui-button-text></span> en el elemento de botón.

    Algo como esto:

    $("#myButton > .ui-button-text").text("New Text");
    • esta fue la única cosa que trabajó para mí
  4. 1

    No sé si usted todavía está buscando una respuesta a esto, pero me he encontrado con tu pregunta. Si miramos el código del botón, jQuery añade una etiqueta o dos. Así que en lugar de volver a escribir toda la cosa, he sustituido el botón .html() con el mismo código html, pero se utilizan javascript de búsqueda() para cambiar la etiqueta. Es feo, pero funciona. También se utiliza el botón de etiqueta para cambiar correctamente.

    var bdef = $(this).html();
    var ht = "";
    if (bdef.search("Nuevo") != -1) { 
        ht = $(this).html();
        $(this).html(ht.replace("Nuevo", "Lista"));
    }
    else {
        ht = $(this).html();
        $(this).html(ht.replace("Lista", "Nuevo"));
    }
  5. 0

    Es el id del botón siempre myButton? Si sí, entonces utilice

    $("#myButton").text('Stop');

    • no funciona. eso es lo que estoy usando.
    • ¿cómo es que abarcan añadido? Si dentro de myButton, esto no funciona, obviamente. Usted puede hacer esto en ese caso: $(«#myButton span»).texto («Stop»); lo que es equivalente a su código. ¿Por qué es que abarcan en en el botón de etiqueta, aunque? Eso suena mal…
    • sí. que es algo de lo que estoy haciendo, pero no quiero hacerlo de esa manera.
    • umm… ¿cuál es el origen de ese lapso, entonces? No veo cómo puede hacerlo de ninguna otra manera sin deshacerse de la luz.
    • deleted — añadido lugar equivocado
    • eliminado ……………….

Dejar respuesta

Please enter your comment!
Please enter your name here