Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Touchmove事件不存在';我不能在有条件的情况下被取消_Javascript_Jquery - Fatal编程技术网

Javascript Touchmove事件不存在';我不能在有条件的情况下被取消

Javascript Touchmove事件不存在';我不能在有条件的情况下被取消,javascript,jquery,Javascript,Jquery,我将移动导航设置为仅允许在视口中点击(我使用的是非画布)。当下面的第一个代码段在没有条件代码的情况下执行时,“touchmove”事件将通过使用preventDefault()来停止,但当我添加any条件时,我无法使其工作。我之所以说any,是因为除了尝试第一个片段(原始片段)之外,我还做了一些测试,假设问题可能是事件委派,因为最初使用的类不在我的HTML中,但只会在稍后触发另一个事件时添加。该测试是一个简单的条件测试,当然返回“true”(同一导航元素中的“my background colo

我将移动导航设置为仅允许在视口中点击(我使用的是非画布)。当下面的第一个代码段在没有条件代码的情况下执行时,“touchmove”事件将通过使用preventDefault()来停止,但当我添加any条件时,我无法使其工作。我之所以说any,是因为除了尝试第一个片段(原始片段)之外,我还做了一些测试,假设问题可能是事件委派,因为最初使用的类不在我的HTML中,但只会在稍后触发另一个事件时添加。该测试是一个简单的条件测试,当然返回“true”(同一导航元素中的“my background color”属性),但它仍然不起作用。想法

if ($('body').hasClass('active-nav')) {
 document.body.addEventListener("touchmove", function(event){   
  event.preventDefault();
 });    
}
测试

var backColor = document.getElementsByTagName('nav')[0].style.backgroundColor;

if (backColor == 'transparent') {
 document.body.addEventListener("touchmove", function(event){   
  event.preventDefault();
 });
}

这样做更好:

document.body.addEventListener("touchmove", function(event){   
    if ($('body').hasClass('active-nav')) {
        event.preventDefault();
    }
});