欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
處理IE中Bubble Up 事件模型的細節

    我們都知道,IE實(shí)現的是一種叫做bubble up的事件模型。在這個(gè)模型中我們的事件可以通過(guò)Web頁(yè)元素的hierarchy,從事件觸發(fā)元素向其parentElement傳遞,除非被顯示的cancel。不過(guò)在一些復雜的事件響應處理中,還有很多細節需要仔細考慮。

    對于Web元素可偵聽(tīng)的事件來(lái)說(shuō),大多數的事件都是比較簡(jiǎn)單的。比如什么onload、onclick、onkeypress、onmousedown、onmouseup等等。但是卻有一些是比較麻煩的,比如onmousemove、onmouseover和onmouseout。為什么說(shuō)這幾個(gè)比較麻煩呢?因為這幾個(gè)事件一般會(huì )比較頻繁的被觸發(fā),而且onmouseover和onmouseout還更加特殊,這兩個(gè)事件還會(huì )影響event的toElement和fromElement屬性。

    同時(shí)onmouseover和onmouseout以及onmousemove還是不確定的事件,什么意思呢?就是說(shuō)當鼠標從html元素上移動(dòng)時(shí),不是100%能觸發(fā)這幾個(gè)事件。這是因為,瀏覽器中dhtml的事件觸發(fā)是在瀏覽器事件處理進(jìn)程合理idle的時(shí)候,根據用戶(hù)的和瀏覽器的交互遍歷dhtml樹(shù)的狀態(tài)來(lái)產(chǎn)生的。當瀏覽器事件處理進(jìn)程太忙,或者用戶(hù)交互過(guò)于密集的時(shí)候,由于IE沒(méi)有事件隊列,沒(méi)有被處理的事件就再也不會(huì )出發(fā)了。這里的事件丟失是完全可以接受的,如果不作丟棄瀏覽器的交互反而會(huì )非常的難用。就常常會(huì )出現這種情況,有時(shí)當我們的windows太繁忙而不立即響應鼠標事件時(shí),我們卻到處點(diǎn)擊鼠標想"激活"系統,系統在忙完那個(gè)費時(shí)的處理后,會(huì )來(lái)接著(zhù)處理message queue里的一大堆message,我們就能看到剛才點(diǎn)過(guò)的鼠標操作都被windows連續處理了

。

    回頭繼續說(shuō)我們事件處理中的細節問(wèn)題??聪旅孢@個(gè)示例:

     this is a inner span element.  


    我們在最外面的藍色span元素中監聽(tīng)事件onmouseover,代碼為:

 onmouseover="status=event.srcElement.style.borderColor + ‘, timestamp: ‘ + new Date()"

    當我們把鼠標移入藍色region,我們看到status上顯示"blue"。我們繼續在藍色region中移動(dòng)鼠標時(shí)(不要和別的邊相交),我們發(fā)現onmouseover在blue時(shí)的timestamp不變,說(shuō)明如果鼠標已進(jìn)入一個(gè)element的區域中,就不再觸發(fā)onmouseover了(否則就成了onmousemove了)??墒沁@個(gè)時(shí)候如果我把鼠標移入綠色紅色的region中,我們發(fā)現又有新的onmouseover事件被觸發(fā)并被藍色span元素截獲。而且不斷的在綠色、紅色藍色regions中移動(dòng)鼠標,timestamp也在不斷地變,說(shuō)明總有onmouseover事件被觸發(fā)。

    其實(shí)既然都說(shuō)了IE的事件處理方式是bubble up,那么藍色span截獲綠色紅色regions中的onmouseover似乎是對的??墒菍τ?font color="#0000ff">藍色span來(lái)說(shuō),這些被多余觸發(fā)的onmouseover事件其實(shí)是不被期望的。IE沒(méi)有做這個(gè)過(guò)濾,不知道是出于什么目的,不過(guò)我們可以自己在腳本中過(guò)濾掉這樣的useless事件,有時(shí)這些事件很可能會(huì )干擾我們做精確的對藍色span進(jìn)行事件控制。假設藍色span的onmouseover事件handler為isAbsoluteMoveOver,代碼如下:

 1
function isAbsoluteMoveOver(elmt)
 2
{
 3
    
if ( event )
 4
    {
 5
        
var tagName = elmt.tagName;
 6
        
var to = FindParentElement(event.toElement, tagName);
 7
        
var from = FindParentElement(event.fromElement, tagName);
 8
        
if ( elmt === to && from === to )
 9
        {
10
            
return false;
11
        }
12
    }
13
    
return true;
14
}

    這時(shí)只有在鼠標移入或移出藍色span時(shí),isAbsoluteMoveOver才返回true!

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
onmouseover 事件
HTML 4.01 / XHTML 1.0 參考手冊(4)
JavaScript拖拽效果關(guān)于鼠標在瀏覽器外面的分析
前端教程:JavaScript事件
onmouseenter和onmouseover區別
prototype使用學(xué)習手冊指南之event.js - Prototype框架 - Ja...
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久