JavaScript阻止默认跳转

时间:2022-01-08 15:00:55

************************阻止默认行为*************************

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 当前对象