2015-12-02 59 views
0

我将手机导航设置为只允许在视口中进行点击操作(我正在使用画布外)。当下面的第一个代码段没有条件代码执行时,通过使用preventDefault()来停止“touchmove”事件,但是当我添加任何条件时,我无法让它工作。我说任何因为除了尝试这第一个片段,原来的一个,我做了一些测试,假设问题可能是事件委托,因为所用的类最初不在我的HTML中,但只会在稍后触发另一个事件时才添加。测试是一个简单的条件肯定返回'真'(我的背景颜色属性在同一个导航元素),但它没有奏效。想法?Touchmove事件不会在条件下被取消

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

TEST

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

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

回答

0

这将是更好地做到这一点:

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