집 >
기사 > 웹 프론트엔드 > javascript onmouseout 솔루션_javascript 기술
javascript onmouseout 솔루션_javascript 기술
- WBOY원래의
- 2016-05-16 18:23:051107검색
onmouseout은 트리거링이 너무 민감하다는 것을 발견했습니다. 레이어의 텍스트 체인을 통과할 때 onmousetout 이벤트가 트리거되어 함수가 정상적으로 표시되지 않습니다. 참고용으로 정리했습니다.
1.
< ;script type ="text/javascript">
함수 테스트(obj, e) {
if (e.currentTarget) {
if (e.관련Target != obj) {
if ( obj != e.관련Target.parentNode) {
alert(1);
}
}
} else {
if (e.toElement != obj) {
if ( obj != e.toElement.parentNode) {
경고(1)
}
}
}
}
"테스트( 이, 이벤트)" style="width:100px;height:100px;border:1px #666 solid">
faddsf
2.
var LeaveFunext = function(t,f){for(var p in f){t[p]=f[p]} return t};
var IE = 'v' == 'v';
var contain = function(wrap,child){
if(IE) return Wrap.contains(child); while(child && typeof( child.parentNode) != "undefind"){
if(wrap == child) return true
child = child.parentNode;
}
return false; 🎜> };
var LeaveFun = function(o){
var _o = typeof o == "string" ? document.getElementById(o) :
return this == window ? _o):LeaveFunext(_o , LeaveFun.prototype);
};
LeaveFun.prototype = {
mouseleave : function(fn){
if(IE){
this.attachEvent( 'onmouseleave',fn) ;
}else{
this.addEventListener('mouseout',function(e){
tar = e.관련Target;
if(!contains(this, tar) ){
fn .call(this);
}, false)
}
return this; ){document.getElementById('share_customerdiv').style.display ='none';})
3. 가장 간단하지만 일부 시스템에서는 약간 다를 수 있습니다.
코드 복사
코드는 다음과 같습니다.
성명:본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.