Touchmove事件不会在条件下被取消

时间:2015-12-02 16:43:14

标签: javascript jquery

我正在设置我的移动导航,只允许在视口中点击(我使用非画布)。当没有条件代码执行下面的第一个片段时,“touchmove”事件会因为应该使用 preventDefault()而停止,但是当我添加任何条件。我说任何因为除了尝试第一个片段(原始片段)之外,我做了一些测试,假设问题可能是事件委托,因为所用的类最初不在我的HTML中,但只会在以后添加在另一个事件触发时。测试是一个简单的条件肯定会返回'true'(我的背景颜色'属性在同一个nav元素中),但它还没有奏效。想法?

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();
 });
}

1 个答案:

答案 0 :(得分:0)

这样做会更好:

ArrayList<JSONObject> list;


public StateParcelable(ArrayList<JSONObject> list){
    this. list = list;
}

public void writeToParcel(Parcel out, int flags) {

}

public int describeContents(){
    return 0;
}

public static final Parcelable.Creator<StateParcelable> CREATOR
        = new Parcelable.Creator<StateParcelable>() {
    public StateParcelable createFromParcel(Parcel in) {
        return new StateParcelable(in);
    }

    public StateParcelable[] newArray(int size) {
        return new StateParcelable[size];
    }
};

private StateParcelable(Parcel in) {

}