单击事件已生成但未在屏幕中显示

时间:2013-07-18 07:30:31

标签: android jquery jquery-mobile cordova

我正在使用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触发器时,似乎是包含jquery mobile的代码。
  • 我认为这不是加载时间因为我可以等待多年而且可能会发生。

你可以看到它不是一个“逻辑”问题,而是一个可用性问题。

提前致谢!

2 个答案:

答案 0 :(得分:2)

对于复选框和广播,请使用change事件而不是click。请记住,将事件附加到动态元素是不同的,我已相应地更新了我的答案。

  

<强> Demo

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

答案 1 :(得分:0)

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