7.1隨筆
一、水平滾動條、垂直滾動條
overflow內容溢出時的設置(設定被設定對象是否顯示滾動條)
overflow-x水平方向內容溢出時的設置
overflow-y垂直方向內容溢出時的設置
二、offsetX與offsetY
鼠標相對於事件源元素(srcElement)的X,Y坐標,只有IE事件有這2個屬性,標準事件沒有對應的屬性。
三、什麽是事件冒泡
在一個對象上觸發某類事件(比如單擊onclick事件),如果此對象定義了此事件的處理程序,那麽此事件就會調用這個處理程序,如果沒有定義此事件處理程序或者事件返回true,那麽這個事件會向這個對象的父級對象傳播,從裏到外,直至它被處理(父級對象所有同類事件都將被激活),或者它到達了對象層次的最頂層,即document對象(有些瀏覽器是window)。
打個比方說:你在地方法院要上訴一件案子,如果地方沒有處理此類案件的法院,地方相關部門會幫你繼續往上級法院上訴,比如從市級到省級,直至到中央法院,最終使你的案件得以處理
四、怎麽阻止事件冒泡
由此可以看出:
1.event.stopPropagation();
事件處理過程中,阻止了事件冒泡,但不會阻擊默認行為(它就執行了超鏈接的跳轉)
2.returnfalse;
事件處理過程中,阻止了事件冒泡,也阻止了默認行為(比如剛才它就沒有執行超鏈接的跳轉)
還有一種有冒泡有關的:
3.event.preventDefault();
如果把它放在頭部A標簽的click事件中,點擊“點擊我”。
會發現它依次彈出:我是最裏層---->我是中間層---->我是最外層,但最後卻沒有跳轉到百度
它的作用是:事件處理過程中,不阻擊事件冒泡,但阻擊默認行為(它只執行所有彈框,卻沒有執行超鏈接跳轉)
五、事件冒泡怎麽傳遞
<div id=1 onclick="a()">
<div id=2>
</div>
</div>
#1包括#2,當點擊#1區域任何位置時(包括#2),都會觸發a事件。想要阻止點擊#2區域時觸發a事件,需要在#2區域內加入阻止事件冒泡的代碼。
變成
<div id=1 onclick="a()">
<div id=2 onclick="stopBubble(this.id)">
</div>
</div>
其中javascript代碼為(以下代碼沒有區別中英文字符,不能直接復制):
function a(){
//這裏是a事件的代碼}
function stopBubble(e) {
if (e && e.stopPropagation) {//非IE瀏覽器
e.stopPropagation();
}
else {//IE瀏覽器
window.event.cancelBubble = true;
}
}
0 0
暫無評論,我去發表~
我的熱門文章
bootstrap-select用法
Bootstrap Paginator 分頁插件使用
前端js與css兼容性問題
WebAPP輸入框被軟鍵盤遮擋腫麽辦?
html5實現下拉刷新,上拉加載
相關博文
阻止子元素繼承父元素事件
js 阻止子元素事件 冒泡 到 父元素
阻止checkbox的父元素事件冒泡
前端面試寶典超
javascript 阻止事件元素默認行為和傳播(冒泡)
前端面試寶典(內容很多,也有很多重復)
利用事件冒泡(Event Bubbling )獲取鼠標下的元素屬性
javascript 點擊子元素時不觸發父元素的點擊事件
六、阻止瀏覽器默認事件
w3c的方法是e.preventDefault(),IE則是使用e.returnValue = false; preventDefault它是事件對象(Event)的一個方法,作用是取消一個目標元素的默認行為。既然是說默認行為,當然是元素必須有默認行為才能被取消,如果元素本身就沒有默認行為,調用當然就無效了。什麽元素有默認行為呢?如鏈接,提交按鈕等。當Event 對象的 cancelable為false時,表示沒有默認行為,這時即使有默認行為,調用preventDefault也是不會起作用的。
7.1隨筆