我有一个工作应用程序,问题是某些页面需要 30 多秒才能在某些设备上加载。我正在使用 jQuery 1.9.1、jQuery Mobile 1.3.1 和 Phonegap 2.5.0。
我有一个将值枚举为单个复选框列表的页面。有一个click事件和一个taphold事件。这在 PC 或 iPhone 5 上效果很好。问题是,只有 300 个条目,在 iPhone 4 上需要 13 秒,在 2 岁的 LG Optimus V 上需要超过 33 秒。现在,我知道这些手机有点旧的,但这太疯狂了。
所以,我打算用 HTML 和 CSS 来复制它。我的外观和感觉都很差,但我无法通过假按钮的实际“点击”来快速选中复选框。我看起来是正确的,在 3 秒内加载到任何设备上,但单击复选框后需要 5 秒才能更改。我选择了带有元素事件的表格,因为 DIV 存在文本格式问题,但我不喜欢表格。
这是我的事件代码:
var $tr = $('#listDIV tr');
$tr.on( 'click', function(e) {
$("#exclusionsCheckbox-" + $(this).prop('id') ).click();
e.stopPropagation();
});
$tr.on( 'taphold', function(e) {
shareActivity( $(this).prop('id'), $(this).prop('title') );
e.preventDefault();
e.stopPropagation();
return false;
});
这是我的表格行的示例:
<tr id="1" title="Test-1">
<td width="40">
<div class="squaredThree">
<input type="checkbox" data-role="none" id="exclusionsCheckbox-1" checked="">
<label for="exclusionsCheckbox-1" onclick="return false;"></label>
</div>
</td>
<td><h6>Test 1</h6></td>
</tr>
taphold 事件完美运行,但单击要么不起作用,要么需要大约 5 秒才能实际更改复选框值。
有什么想法吗?