代碼:
export default function insideNode(outerNode, innerNode) {
if(!outerNode || !innerNode){
return false;
}else if(outerNode === innerNode){
return true;
}else if(outerNode.nodeType == 3){ //節(jié)點(diǎn)類型為text類型
return false;
}else if(innerNode.nodeType == 3){ //節(jié)點(diǎn)類型為text類型
return containsNode(outerNode, innerNode.parentNode);
}else if (outerNode.contains) {
return outerNode.contains(innerNode);
}else if (outerNode.compareDocumentPosition) {
return !!(outerNode.compareDocumentPosition(innerNode) & 16);
}else {
return false;
}
}
使用
1.給父區(qū)域添加事件(一般為頁面document)
document.addEventListener('click', this.onDocumentClick);
2.在onDocumentClick方法類調(diào)用insideNode并做相應(yīng)操作
onDocumentClick: function () {
if(!insideNode(outerNode,event.target)){
//你的操作
}
},