回覆列表
  • 1 # 使用者6316454312284

    在onmouseover時先進行如下判斷,結果為true時再執行方法體:if(!this.contains(event.fromElement)){MouseOverFunc()}在onmouseout時先進行如下判斷,結果為true時再執行方法體:if(!this.contains(event.toElement)){MouseOutFunc()}下面來解釋一下上面兩行程式碼的含義:在IE中,所有的HTML元素都有一個contains方法,它的作用是判斷當前元素內部是否包含指定的元素。利用這個方法來判斷外層元素的事件是不是因為內部元素而被觸發,如果內部元素導致了不需要的事件被觸發,那就忽略這個事件。event.fromElement指向觸發onmouseover和onmouseout事件時滑鼠離開的元素;event.toElement指向觸發onmouseover和onmouseout事件時滑鼠進入的元素。那麼上面兩行程式碼的含義就分別是:○當觸發onmouseover事件時,判斷滑鼠離開的元素是否是當前元素的內部元素,如果是,忽略此事件;○當觸發onmouseout事件時,判斷滑鼠進入的元素是否是當前元素的內部元素,如果是,忽略此事件;這樣,內部元素就不會干擾外層元素的onmouseover和onmouseout事件了。但問題又來了,非IE的瀏覽器並不支援contains函式,不過既然已經知道了contains函式的作用,就可以自行新增如下的程式碼來為非IE瀏覽器增加contains支援:if(typeof(HTMLElement)!="undefined"){HTMLElement.prototype.contains=function(obj){while(obj!=null&&typeof(obj.tagName)!="undefind"){if(obj==this)Returntrue;Obj=obj.parentNode;}returnfalse;};}

  • 中秋節和大豐收的關聯?
  • 水葫蘆如何清除?