zoukankan      html  css  js  c++  java
  • JQuery中DOM事件合成用法

     jQuery有两个合成事件——hover()方法和toggle()方法

     类似前面讲过的ready()方法,hover()方法和toggle()方法都属于jQuery自定义的方法。

     hover()方法:

      hover()方法的语法结构为:hover(enter,leave);

      hover()方法用于模拟光标悬停事件。当光标移动到元素上时,会触发指定的第1个函数(enter);当光标移出这个元素时,会触发指定的第2个函数(leave)。

      代码为:

      $(function(){
               $("#panel h5.head").hover(function(){
                          $(this).next().show();
                   },function(){
                          $(this).next().hide();
                 })
    })
    代码运行后的效果与下面代码运行后的效果是一样的。当光标滑过“标题”链接时,相应的“内容”将被显示;当光标滑出“标题”链接后,相应的“内容”则被隐藏。
    $(function(){
        $("#panel h5.head").mouseover(function(){
          $(this).next("div.content").show();
        });
        $("#panel h5.head").mouseover(function(){
          $(this).next("div.content").hide();
        })
    });
    注意:
      1. CSS中有伪类选择符,例如“:hover",当用户光标悬停在元素上时,会改变元素的外观。在大多数符合规范的浏览器中,伪类选择符可以用于任何元素。 然而在IE 6浏览器中,伪类选择符仅可用于超链接元素。对于其他元素,可以使用jQuery的hover()方法。
      2. hover()方法准确来说是替代jQuery中的bind("mouseenter")和bind("mouseleave"),而不是替代 bind("mouseover")和bind("mouseout")。因此当需要触发hover()方法的第2个函数时,需要用 trigger("mouseleave")来触发,而不是trigger("mouseout")。
         toggle()方法  toggle()方法的语法结构为:toggle(fnl, fn2, ...fnN);
         toggle()方法用于模拟鼠标连续单击事件。第1次单击元素,触发指定的第1个函数(fn1);当再次单击同一元素时,则触发指定的第2个函数(fh2);如果有更多函数,则依次触发,直到最后一个。随后的每次单击都重复对这几个函数的轮番调用。
      在前面的加强效果的例子中,使用了以下jQuery代码:
      
      $(function(){
        $("#panel h5.head").toggle(function(){
          $(this).next().show();
        },function(){
          $(this).next().hide();
        })
      })
     通过使用toggle()方法不仅实现了同样的效果,同时也简化了代码。
     toggle()方法在jQuery中还有另外一个作用:切换元素的可见状态。如果元素是可见的,单击切换后则为隐藏;
     如果元素是隐藏的,单击切换后则为可见的。因此上面的代码还可以写成如下jQuery代码:
      $(function(){
        $("#panel h5.head").toggle(function(){
          $(this).next().toggle();
        },function(){
          $(this).next().toggle();
        })
      })
    为了能有更好的用户体验,现在需要在用户单击“标题”链接后,不仅显示“内容”,而且高亮显示“标题”。代码为:
      $(function(){
        $("#panel h5.head").toggle(function(){
          $(this).addClass("highlight");
          $(this).next().show();
        },function(){
          $(this).removeClass("highlight");
          $(this).next().hide();
        });
      })
    运行代码后,如果“内容”是显示的,“标题”则会高亮显示:如果“内容”是隐藏的,则不会高亮显示“新闻标题”。
     
  • 相关阅读:
    js中对new Date() 中转换字符串方法toLocaleString的使用
    安装sass时遇到Failed to build gem native extension
    访问mapper方法提示invalid bound statement (not found)原因总结
    A query was run and no Result Maps were found for the Mapped Statement
    VS常用快捷键
    查看python和NumPy版本和安装路径
    Mybatis报错: There is no getter for property named xxx
    Map集合中get不存在的key值
    MySQL中DATA类型数据和DATATIME类型数据的比较
    shell 数组操作
  • 原文地址:https://www.cnblogs.com/jsingleegg/p/5195561.html
Copyright © 2011-2022 走看看