1. 程式人生 > >7.1隨筆

7.1隨筆

src opp 中英文 沒有 方法 a標簽 前端面試 -s 軟鍵盤

一、水平滾動條、垂直滾動條

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隨筆