这应该是非常简单的,特别是考虑到有很多类似的问题已经被解决了,但由于某些原因,我不能让它工作。
我在一个页面上的divs与一个叫做 "thing "的类绑定。当用户点击类为 "item "的元素时,我想让所有类为 "thing "的divs立即被删除。这在网页上可以完美地工作,但在手机Safari上就不行了。在手机上,元素在 "点击 "后仍然存在,直到我随后在页面上滑动。一旦我在点击后滑动,元素就会被删除。这就好像 "点击 "没有被视为 "触摸 "一样。
根据其他建议的解决方案,我已经添加了 <meta content="width=device-width, user-scalable=no" name="viewport">
、"touchstart "事件和 html {touch-action: manipulation;}
css.html
css.HTML
<div class="thing"></div>
JS
// On click
$(".item").on("click touchstart", function () {
$(".thing").remove();
});
当用户点击一个带有 "item "类的元素时,我通过ajax进行API调用。我最终利用ajax中的成功函数来删除类为 "thing "的元素。
var success = function (response) {
$(".thing").remove();
}
这里最大的问题是类 "item "的元素在API调用成功返回之前不会被删除。当然,我更希望在观察到点击事件时就删除元素,但在Safari手机上我无法让它像预期的那样工作。
这个解决方案比等到用户第二次滑动时才删除元素要好。