如何获取触发 taphold 的元素?

How to get the element on which taphold is fired?

能否请您帮助我找到使用 JS、jQuery 或 jQuery 移动设备在哪个元素上触发“taphold”?

我的HTML结构如下

<script>
    $(document).on("pagecreate", function () {      
        $("#myFilesListView").bind('contextmenu', function (event) {
            event.preventDefault();
            event.stopPropagation();
            return false;
        });
    });
    $(document).ready(function () {
        $("#myFilesListView").bind("taphold", function (event) {
            event.preventDefault(false);
            event.stopPropagation();           
            var ID = $(this).child().attr("id");
            alert(ID);
        });
    });
</script>
    <div data-role="page" id="page1">
        <div data-role="header"></div>
        <div data-role="main">
            <ul data-role="listview" id="mylistview">
                <li class="mydata" id="1"> some conetent</li>
                <li class="mydata" id="2"> some conetent</li>
                <li class="mydata" id="3"> some conetent</li>
                <li class="mydata" id="4"> some conetent</li>
                <li class="mydata" id="5"> some conetent</li>
              <!--ids are not in predefined sequences and there may be 100s of list--> 
            </ul>
        </div>
 <div data-role="fotter"></div>
</div>

在我的 JavaScript 代码中,我能够阻止 taphold 的默认行为,但我不知道如何在用户点击并按住该列表时立即获取特定列表的 ID。

您可以将 taphold 绑定到 li 元素而不是列表视图:

$(document).on("pagecreate", "#page1", function () {      
    $("#mylistview").on('contextmenu', function (event) {
        event.preventDefault();
        event.stopPropagation();
        return false;
    });

    $("#mylistview li").on("taphold", function (event) {
        var ID = $(this).prop("id");
        alert(ID);
    });
});

DEMO