0

目前我正在尝试让触摸事件在 Q10 上运行的应用程序上工作。该应用程序是使用 Webworks、HTML 5、JavaScript 和 jQuery 构建的。

strPendList += '<div id="pendingContainer" class="pendingContainer">';
for(var i = 0; i < len; i++) {
  var pendRefNo = data.result[i].refno;
  var pendRequester = data.result[i].requestor;
  var pendDate= data.result[i].date;
  var pendAmount = data.result[i].amt;

  strPendList += '<div class="pendClaimDisplay" onmouseover="refHighlight(this)" onmouseout="noRefHighlight(this)" onclick="getQClaimParticulars(\''+pendRefNo+'\')">';

  strPendList += '<div class="pendRefLabel">REF NO </div>';
  strPendList += '<div class="pendRefValue">: '+pendRefNo+'</div>';
  strPendList += '<div class="pendRequesterLabel">REQUESTER : </div>';
  strPendList += '<div class="pendRequesterValue maxDisplay">'+pendRequester+'</div>';
  strPendList += '<div class="pendDateLabel">DATE </div>';
  strPendList += '<div class="pendDateValue">: '+pendDate+'</div>';
  strPendList += '<div class="pendAmountLabel">AMOUNT : </div>';
  strPendList += '<div class="pendAmountValue">'+pendAmount+'</div>';
  strPendList += '</div>';//end of pendClaimDisplay
}
strPendList += '</div>';//end of pendingContainer
$('#content').html(strPendList);

data.result正在从 Web 服务中检索,并将用于生成listing(pendClaimDisplay). 我尝试添加高光效果,但onmouseover(refHighlight)无法在设备上使用。

我试图替换onmouseover为:

strPendList += '<div class="pendClaimDisplay" ontouchstart="refHighlight(this)" ontouchend="noRefHighlight(this); getQClaimParticulars(\''+pendRefNo+'\')">';

但是现在我无法向下滚动列表,因为ontouchend每当我尝试向上或向下滚动列表时都会被触发。

有没有什么办法解决这一问题?

编辑:

function refHighlight(that) {
  $(that).css({'background-color':'#990000'});
}

function noRefHighlight(that) {
  $(that).css({'background-color':''});
}
4

1 回答 1

1

不是 100% 确定为什么您的代码不适合您,但我发现在处理烦人的触摸问题时有用的一件事是使用名为 Hammer.js 的库

这是我使用它制作的示例应用程序:https ://github.com/blackberry/BB10-WebWorks-Samples/tree/master/gestures

于 2013-07-29T12:54:02.570 回答