[英]How can I replicate jQuery Mobile stacked checkboxes without using jQuery?
我有一個正在運行的應用程序,問題是某些頁面需要30+秒才能加載到某些設備上。 我正在使用jQuery 1.9.1,jQuery Mobile 1.3.1和Phonegap 2.5.0。
我有一個頁面將枚舉值作為單個復選框列表。 有一個單擊事件和一個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秒鍾才能實際更改復選框的值。
有什么想法嗎?
好的,它看起來像是巫婆釀造的。)關閉s和復選框的事件處理程序; b。從click事件返回false;以及c。)使用.prop()而不是.click()做特技:
var $tr = $('#listDIV tr'),
$inputs = $('#listDIV input');
// Turn off Event Handlers
$tr.off();
$inputs.off();
$tr.click(function(e) {
if (e.target.type !== 'checkbox')
{
var $checkbox = $("#exclusionsCheckbox-" + $(this).prop('id') );
$checkbox.prop('checked', !$checkbox.prop('checked'));
e.stopPropagation();
return false;
}
});
$tr.on( 'taphold', function(e) {
shareActivity( $(this).prop('id'), $(this).prop('title') );
e.preventDefault();
e.stopPropagation();
return false;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.