Skip to content Skip to sidebar Skip to footer

How To Change A Jquery Mobile Button Icon With Javascript

I would like to have a button that changes data-icon class depending upon user selections Example button would be:

Solution 1:

jQuery Mobile has a predefined function:

$('a').buttonMarkup({ icon: "star" });

It is not enough to change an attribute, final button restyling must be done with .buttonMarkup( function.

Here's an official documentation: http://jquerymobile.com/demos/1.2.0/docs/buttons/buttons-options.html

And here's an example: http://jsfiddle.net/Gajotres/AmFKa/

Also, because you are creating a custom button it wont be enough just to change icon name, first you need to define it in your css like this:

<styletype="text/css">.ui-icon-edit {
       background-image: url(icons-18-white.png); // This should be your picture
       background-repeat: no-repeat;
       background-position: -824px50%;
    }
</style>

We would add this new icon like this:

$('a').buttonMarkup({ icon: "edit" });

In this case we are adding picture edit. Now notice its cass name .ui-icon-edit, to add a new icon class you need to combine a .ui-icon- string with a icon name. In your case your class name would be .ui-icon-another-flag.

Solution 2:

Just pass in the value to the data function. See the documentation

$("#language2").data("icon", "another-flag");

Solution 3:

You can use $('selector').attr('data-icon', 'newValue') to change the attribute.

The documentation

Post a Comment for "How To Change A Jquery Mobile Button Icon With Javascript"