我使用asp转发器生成项目列表,每行都是一个新的div。当我单击该行时,该行将突出显示,并且会选中一个隐藏的复选框。要做到这一点,我在包含Container.ItemIndex
的div上有一个id,所以它看起来像:
<div class="cartItemInfo" id="cartItemInfo_<%# Container.ItemIndex %>" OnClick='<%# "return highlightrow(" + Container.ItemIndex +")" %>'>
onclick
称之为:
function highlightrow(RowNum) {
//alert(RowNum);
if ($("input[id$=cbRowSelected_" + RowNum + "]").is(':checked')) {
// alert('IF');
$("input[id$=cbRowSelected_" + RowNum + "]").attr("checked", false);
$("div[id$=cartItemInfo_" + RowNum + "]").each(function () { $(this).css("background-color", "inherit") });
}
else {
//alert('ELSE');
$("input[id$=cbRowSelected_" + RowNum + "]").attr("checked", "checked");
$("div[id$=cartItemInfo_" + RowNum + "]").each(function () { $(this).css("background-color", "#8A8A8A") });
}
}
单击时,它会调用我的jquery并查看复选框是否已选中,并执行我预期的操作。当我在手机上试试这个时,我遇到了一个问题。当警报取消注释并触摸列表中的区域时,它会告诉我正确的行号,但不会进入if或else。
我已经知道onclick
无法在移动设备上运行,我应该ontouchstart
代替。但是,我甚至无法告诉我我的行号。
如果我能提供更多信息以帮助解决我的问题,我会尽力这样做。
答案 0 :(得分:0)
问题不在于onclick,而是jquery引用。我所使用的服务器使用的是https,而对jquery文件的引用是http。在移动设备上,由于安全性的不同,它不会加载jquery文件。能够在学习Google远程调试并获得对开发者控制台的访问权后找到问题。