>  기사  >  웹 프론트엔드  >  javascript onmouseout 솔루션_javascript 기술

javascript onmouseout 솔루션_javascript 기술

WBOY
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으로 문의하세요.
이전 기사:스핀 버튼 사용자 정의 텍스트 상자 값은 jQuery_jquery에 따라 증가하거나 감소합니다.다음 기사:스핀 버튼 사용자 정의 텍스트 상자 값은 jQuery_jquery에 따라 증가하거나 감소합니다.

관련 기사

더보기