簡體   English   中英

如何在不使用jQuery的情況下復制jQuery Mobile堆疊復選框?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM