1. 程式人生 > >JavaScript阻止預設跳轉

JavaScript阻止預設跳轉

************************阻止預設行為*************************

IE: event.returnValue = false;

FF: e.preventDefault();


相容: return false; //使用這種方式繫結的時候一定要加return


<a href="http://www.baidu.com" onclick="return test(event);">跳到百度1</a>

 

一.超連結的預設行為-跳轉

 

<a href="http://www.baidu.com" onclick="return test(event);">跳到百度1</a>


a標籤.onclick = function(){

return test(event);
}


二.阻止右鍵選單彈出


document.oncontextmenu = function(e){

//阻止預設行為的程式碼
}


三.阻止表單的預設行為-提交

 


************************事件物件************************

對當前事件的一個具體描述 封裝到事件物件中,類似異常物件


一.xhtml 繫結方式

1. IE

使用者單擊按鈕, 單擊事件產生後 IE瀏覽器會隱式的建立一個事件物件 event

它是全域性變數, 可以直接使用event 或 window.event來訪問


2. FF

第一種繫結方式 火狐並不會隱式建立事件物件,需要程式設計師主動的給事件處理函式傳入一個事件物件event


二. dom 繫結方式

1.IE
和第一種繫結方式一樣


2.FF

也會隱式的建立事件物件, 只不過這個事件物件 不是全域性變數 , 作為事件處理函式的第一個引數傳遞過來的

 

 

************************獲得事件物件的第二種方式(瞭解)************************


e = e||event

 

************************演示: 小球移動************************

 

 

**********************************事件源************************

第一種方式

function getEventSource (e) {

var eventSource = null;

if(document.attachEvent){

eventSource = event.srcElement;
}else{

eventSource = e.target;
}



return eventSource;
}

 

第二種方式(瞭解)


e=e ||event;

eventSource = e.srcElement || e.target;

 

第三種 this

 

*****************************************this********************************************


一. 普通函式中

this 指向的是 window 物件


二.用在事件處理函式中

指向是事件源


如果是第一種繫結方式 在事件處理函式 test() 中 列印this 把test()函式當做普通函式用的...


三. 如果用在自定義類中


this 當前物件