Yises
Yises

Reputation: 319

The click event is made but it isn't showed in the screen

I'm making a mobile application with phonegap and jquery mobile. Everytime I select one of the menu elements I call to a WS that gives me an answer that I show in the screen. It works perfectly up to there.

As I want to have a better view so I use the code trigger ('create'). (http://jquerymobile.com/demos/1.0a4.1/docs/forms/forms-checkboxes.html but insted of refresh I have to make an create)

var listadohtml = '<div data-role="fieldcontain"><fieldset data-role="controlgroup">';
for (var i=0;i<resultado.length;i++){
    var item = '';
    var id = resultado[i]['id'];
    item += '<input type="checkbox" name="checkbox-'+id+'" id="checkbox-'+id+'" class="custom" />';
    item += '<label for="checkbox-'+id+'">'+resultado[i]["title"]+'</label>';

    listadohtml += item;
}
listadohtml += '</fieldset></div>';
$('#listaPreguntas').html(listadohtml).trigger('create');

Inmediatly after that I associate an event:

$("#listaPreguntas input[type='checkbox']").bind( "click", function(event, ui) {... some code ...});

It shows everything fine, but the problem is that sometimes (not always, that's the problem) when I click a checkbox the green tick is not shown but the event change is made. When it happens I can see, by clicking in other part of the screen, that I have clicked before because it refreshes and shows the tick.

The conclussions I have

As you can see its not a "logic" problem but a usability one.

Thanks in advance!

Upvotes: 0

Views: 137

Answers (2)

Omar
Omar

Reputation: 31732

For checkbox and radio, use change event not click. And keep in mind that attaching events to dynamic elements is different, I have updated my answer accordingly.

Demo

$(document).on('change', '[type=checkbox]', function () {
  // code here
});

Upvotes: 2

Sheetal
Sheetal

Reputation: 1366

If the event click fires every time as expected then try to set the check box checked/unchecked classes using addClass and removeClass in your code pragmatically rather than relying on the JQM.

Upvotes: 0

Related Questions