我动态生成如下列表:
$("#list").append("<li><a class='touchable' id=" + results.rows.item(i).id + " href='#list' onclick='showDetailsList(" + results.rows.item(i).id + ");'>" + results.rows.item(i).name + "</a></li>");
正如您所看到的,我将“可触摸”类添加到链接中。现在我有:
$(document).on("taphold",".touchable",function(e){
e.preventDefault();
e.stopPropagation();
$(this).simpledialog2({
mode:"blank",
headerText:"Image Options",
showModal:false,
forceInput:true,
headerClose:true,
blankContent:"<ul data-role='listview'><li><a href=''>Send to Facebook</a></li><li><a href=''>Send to Twitter</a></li><li><a href=''>Send to Cat</a></li></ul>"
});
});
我添加了'e.preventDefault()'。但是,当我点击链接几秒钟时,对话框会显示,但是当我发布点击时,它会自动跳转到另一页。
我希望可以选择在对话框中进行选择,而不是转到其他页面。我怎么能这样做?
答案 0 :(得分:1)
我认为发生的事情是,当您释放点击时,click
事件将在链接上触发,您将跳转到另一页。你可以做的是将一个click
事件处理程序绑定到taphold事件处理程序中的$(this)
,这将阻止事件冒泡。
这样的事情
$(this).one("click", function(e) { // one to only handle one (the next) click event
e.preventDefault();
e.stopPropagation();
});
你的taphold处理程序应该工作。