最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript事件的一些重要说明_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:45:03
文档

JavaScript事件的一些重要说明_javascript技巧

JavaScript事件的一些重要说明_javascript技巧:1,JavaScript异步回调 代码如下: //注册回调函数loaded到处理函数window.onload上 window.onload = loaded; //把方法window.alert地址传递给show函数 var show = window.alert; function loaded(){ show(su
推荐度:
导读JavaScript事件的一些重要说明_javascript技巧:1,JavaScript异步回调 代码如下: //注册回调函数loaded到处理函数window.onload上 window.onload = loaded; //把方法window.alert地址传递给show函数 var show = window.alert; function loaded(){ show(su


1,JavaScript异步回调
代码如下:

//注册回调函数loaded到处理函数window.onload上
window.onload = loaded;
//把方法window.alert地址传递给show函数
var show = window.alert;
function loaded(){
show("success");
}


2,事件对象
  下面的js实现当在textarea文本框里面键入回车时,并不导致换行。即禁用回车键
代码如下:


/*
事件的对象的棘手部分在于,IE的实现与W3C的规范有查表。IE使用一个的全局事件对象(它可以再全局变量属性window.event中找到),而其他浏览器则使用的包含事件对象的参数传递。
*/
document.getElementsByTagName("textarea")[0].onkeypress = function(e)
{
//如果不存在事件对象,则获取全局的(仅IE)的对象
var e = e || window.event;
//如果敲击了回车键,返回false(使它不发生任何行为)
return e.keyCode != 13;
}


3,this关键字
  浏览器会把this关键字等同于引用该函数(含有this关键字的函数)的当前元素
代码如下:




  • Home


  • mappath


  • parentpath





  • var li = document.getElementsByTagName("li");
    for (var i = 0; i < li.length; i++)
    {
    li[i].onclick = handeClick;
    }
    function handeClick()
    {
    this.style.backgroundColor = "blue";
    this.style.color = "red";
    }


    4,取消事件冒泡
      通常当你对子元素作样式作修改,或者触发事件,根据冒泡原理,其父元素也会作相同改变,为防止这类事情发生,需要做取消事件冒泡的处理。
      下面实例展示了鼠标会为其悬停的当前元素加上红色的边框。如果不阻止事件冒泡的话,每次把鼠标移到一个元素上时,该元素及其父元素都会有红色的边框,这是我们不希望看到的。
    代码如下:




  • Home


  • mappath


  • parentpath





  • //阻止冒泡的通用函数
    function stopBubble(e)
    {
    if (e && e.stopPropagation)
    //w3c方法
    e.stopPropagation();
    else
    //ie方法
    window.event.cancelBubble = true;
    }
    var li = document.getElementsByTagName("*");
    for (var i = 0; i < li.length; i++)
    {
    //监听用户鼠标,当移动到元素上时,为元素加上红色边框
    li[i].onmouseover = function(e)
    {
    this.style.border = "1px solid red";
    stopBubble(e);
    }
    //检查用户鼠标,当移开元素时,删除我们加上的边框
    li[i].onmouseout = function(e)
    {
    this.style.border = "0px";
    stopBubble(e);
    }
    }


    5,重载浏览器的默认行为
      浏览器都有这种默认的行为,即当我们在标签上点击的时候会链接到href属性的地址上,有的时候我们并不希望这种事情发生,而想实现我们自己的效果,比如弹出警告框,示例如下。
    代码如下:
    重载浏览器的默认行为

    /*
    为了达到同content相同效果
    */
    function stopDefault(e)
    {
    //W3C防止浏览器默认行为
    if (e && e.preventDefault)
    e.preventDefault();
    //IE防止浏览器默认行为
    else
    window.event.returnValue = false;
    return false;
    }
    var a = document.getElementsByTagName("a");
    for (var i = 0; i < a.length; i++)
    {
    a[i].onclick = function(e)
    {
    alert("我已经修改了浏览器的默认行为了");
    return stopDefault(e);
    //好像直接写下面一句也可以
    //return false;
    }
    }


    6,事件的亲和力(accessibility,又称可访问性)
      为了使得自己的网站更有亲和力,可以这样考虑,当我们把鼠标放在一个元素上或者通过键盘的tab键访问时,其样式应该保持一致,如下代码
    代码如下:




  • Home


  • mappath


  • parentpath





  • var a = document.getElementsByTagName("a");
    for (var i = 0; i < a.length; i++)
    {
    //绑定鼠标悬停和聚焦事件处理函数到元素上
    //当用户把鼠标悬停到链接上,或者(使用键盘)聚焦到链接上时,它会把的背景颜色变成蓝色
    a[i].onmouseover = a[i].onfocus = function()
    {
    this.style.backgroundColor = "blue";
    }
    //绑定鼠标离开和模糊事件处理函数到元素上
    //当用户从链接移开时,它会把的背景颜色变成白色
    a[i].onmouseout = a[i].onblur = function()
    {
    this.style.backgroundColor = "white";
    }
    }


    7,绑定事件监听
    代码如下:
    //addEventt()添加事件
    //Scott Andrew's original addEvent() function
    //elm元素,document.getElementId('btn1')
    //evType事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on",如Click
    //fn当然就是绑定的函数了,记住不要跟括号,如showalert
    //useCapture布尔值,表示该事件的响应顺序.userCapture若为true,则浏览器采用Capture,若为false则采用bubbing方式.建议用false
    function addEvent(elm, evType, fn, useCapture)
    {
    if (elm.addEventListener)
    {//firefox,navigation,etc..
    elm.addEventListener(evType, fn, useCapture);
    }
    else if (elm.attachEvent)
    {//IE
    var r = elm.attachEvent('on' + evType,fn);
    }
    else
    {
    elm['on' + evType] = fn;
    }
    }
    //removeEvent()注销事件
    //参数名同addEvent()函数
    function removeEvent(elm, evTye, useCapture)
    {
    if (elm.detachEvent)
    {
    elm.detachEvent('on' + evType);
    }
    else if (elm.removeEventListener)
    {
    elm.removeEventListener(evType, userCapture);
    }
    }

    文档

    JavaScript事件的一些重要说明_javascript技巧

    JavaScript事件的一些重要说明_javascript技巧:1,JavaScript异步回调 代码如下: //注册回调函数loaded到处理函数window.onload上 window.onload = loaded; //把方法window.alert地址传递给show函数 var show = window.alert; function loaded(){ show(su
    推荐度:
    标签: 技巧 事件 js
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top