Javascript 删除子对象时,jQuery touchmove停止工作

Javascript 删除子对象时,jQuery touchmove停止工作,javascript,jquery,gesture,Javascript,Jquery,Gesture,我有两个部门: <div class="main"> <div class="child" /> </div> 但在移除touchmove后,它将不再开火。只有当我通过点击子元素启动touchmove时才会发生。。。这个问题对我来说是显而易见的,但是解决方案是什么呢?$().remove()删除dom元素及其事件侦听器。使用$().detach()保留事件侦听器 .detach()方法与.remove()方法相同,不同之处在于.detach()保留

我有两个部门:

<div class="main">
    <div class="child" />
</div>
但在移除touchmove后,它将不再开火。只有当我通过点击子元素启动touchmove时才会发生。。。这个问题对我来说是显而易见的,但是解决方案是什么呢?

$().remove()
删除dom元素及其事件侦听器。使用
$().detach()
保留事件侦听器

.detach()方法与.remove()方法相同,不同之处在于.detach()保留与已删除元素关联的所有jQuery数据。当删除的元素稍后要重新插入DOM时,此方法非常有用


我刚刚创建了一个处理事件的不可见覆盖,这似乎有效:

var toch = $(document.createElement('div'));
toch.css('position', 'absolute');
toch.css('width', '100%');
toch.css('height', '100%');
map.append(toch);

toch.bind('touchmove', function(f) {})

$('main')
应该是
$('.main')
?此外,绑定函数未关闭。该函数中有什么?也许,也许这会修复它:
$('.child').bind('touchstart',函数(e){e.originalEvent.preventDefault();e.originalEvent.stopImmediatePropagation();})。现在,孩子身上的触摸事件不起任何作用,因此
touchmove
直接来自
.main
。虽然这也有可能完全破坏您的代码并删除任何dragsupport:D但我很认真,如果需要,请告诉我works@myfunkyside好主意,但现在事件没有传播到main@wutzebaer-好的,是的,这就是我害怕的,我希望它仍然能工作,因为它有自己的事件监听器,但它不是那样工作的aperantly@wutzebaer-我确实看到您的代码中可能存在错误:
f.originalEvent.preventDefault()应该是
f.preventDefault()。我犯了一个错误,将其复制到我以前的评论中,但是如果我回忆起
originalEvent
应该只用于
触摸
回顾代码,您不是删除元素然后重新插入它们,而是删除元素然后重新创建它们。如果要创建新元素,则需要向其添加事件侦听器。它们从未获得事件侦听器,只有map具有事件侦听器
$('.main').find(".child").remove();
var toch = $(document.createElement('div'));
toch.css('position', 'absolute');
toch.css('width', '100%');
toch.css('height', '100%');
map.append(toch);

toch.bind('touchmove', function(f) {})