0

我正在使用 phonegap 和 jquery mobile 制作移动应用程序。每次我选择一个菜单元素时,我都会调用一个 WS,它会给我一个答案,我会在屏幕上显示。它完美地工作到那里。

因为我想有一个更好的视图,所以我使用代码触发器('create')。(http://jquerymobile.com/demos/1.0a4.1/docs/forms/forms-checkboxes.html但我必须创建一个刷新)

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');

之后我立即关联一个事件:

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

它显示一切正常,但问题是有时(并非总是如此,这就是问题所在)当我单击复选框时,未显示绿色勾号,但发生了事件更改。当它发生时,我可以通过单击屏幕的其他部分看到我之前单击过的内容,因为它会刷新并显示勾号。

我的结论

  • 这不是 AVD,因为我在我的手机中使用 android 4.0 进行了所有测试。
  • 当我使用 de trigger 时,它似乎是包含 jquery mobile 的代码。
  • 我认为这不是加载时间,因为我可以等待数年并且它可能会发生。

如您所见,这不是“逻辑”问题,而是可用性问题。

提前致谢!

4

2 回答 2

2

对于复选框和收音机,请使用changeevent not click。请记住,将事件附加到动态元素是不同的,我已经相应地更新了我的答案。

演示

$(document).on('change', '[type=checkbox]', function () {
  // code here
});
于 2013-07-18T08:51:53.413 回答
0

如果事件 click 每次都按预期触发,则尝试在代码中实用地使用 addClass 和 removeClass 设置复选框选中/未选中的类,而不是依赖 JQM。

于 2013-07-18T08:06:59.800 回答