2013-07-18 22 views
0

我正在制作一个手机应用程序与phonegap和jQuery的移动。每次我选择一个WS调用的菜单元素,给我一个我在屏幕上显示的答案。它完美地工作到那里。点击事件,但它没有显示在屏幕

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

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之后,我的事件相关联:

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

这表明一切正常,但问题是,有时(并不总是,这是问题)当我点击一个复选框时,绿色的勾号没有显示,但事件发生了变化。当发生这种情况时,通过点击屏幕的其他部分,我可以看到之前点击过,因为它刷新并显示标记。

的conclussions我有

  • 这不是因为AVD IM使所有的测试中我的手机与Android 4.0。
  • 它似乎是我使用de触发器时包含jquery mobile的代码。
  • 我认为这不是加载时间,因为我可以等待几年,它可能会发生。

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

在此先感谢!

回答

0

如果每次按照预期点击事件,则尝试在实际代码中使用addClass和removeClass在代码中设置复选框选中/未选中的类,而不是依赖于JQM。

+0

我试图使它但它没有工作:(寻找答案 – Yises

2

对于复选框和收音机,请使用change事件不是click。并且请记住,将事件附加到动态元素是不同的,因此我已经更新了我的答案。

Demo

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

谢谢你。我想,改变之前的变化事件,并有同样的问题。 – Yises

+0

对不起@Yises,因为它们是动态的,我会更新我的答案 – Omar

+0

我修改了我的'绑定'到你的.on('改变'...和它一样,有时它可以工作,而其他复选框被“冻结”直到我点击屏幕的另一侧(并且事件发生了出现勾号)。谢谢! – Yises

相关问题