zoukankan      html  css  js  c++  java
  • jquery事件绑定(2)

    Jquery中绑定事件有三种方法,下面是三种方式绑定

    (1)element.click(function(){});

    (2)element.bind("click",function(){});

    (3)element.live("click",function(){});

    注意第一种方式绑定和之前的差不多,(这里节约了一个关键字on)
    注意API中这么写的
    $("p").on("click", function(){
    alert( $(this).text() );
    });

    重点要说的是后两种,其实他们两个也是绑定事件看起来和第一种都差不多,但是有很大的却别

    live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件
    但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bind方法的这个缺陷,它可以对后生成的元素也可以绑定相应
    的事件。

    $('span').live("click",fun)
    function fun(){
    alert("hello")
    }
    var $v=$("<span>hello world</span>")
    $('body').append($v)


    那为什么有live我们还需要bind呢?注意bind是不可取代的
    不同之处:
    1:试验事件冒泡
    2:live() 并不完全支持通过DOM遍历的方法找到的元素。取而代之的是,应当总是在一个选择器后面直接使用 .live()
    3:bind方法可以绑定任何JavaScript的事件,而live方法在jQuery1.3的时候只支持不是很多的方法


    典型事件
    1:hover一个模仿悬停事件
    注意:鼠标在这个时候有两种情况,进入和出去

    $('span').hover(function(){
    alert('a')
    },function(){
    alert('b')
    })

    那怎么用bind或者leave来使用呢?
    var $v=$("<span>click me</span>")
    $('body').append($v);
    $('span').live({
    mouseenter:enter,
    mouseleave:leave
    })

    function enter(){
    alert("enter")
    }
    function leave(){
    alert("leave")
    }

    2:toggle用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。
    $v.toggle(function(){
    alert("hello")
    },function(){
    alert("world")

    })

  • 相关阅读:
    python爬虫慕课基础2
    python爬虫慕课基础1
    Xcode6中如何对scrollview进行自动布局(autolayout)
    iOS 图形编程总结
    iOS开发之数据存取
    自定义下拉刷新控件-CBStoreHouseRefreshControl
    'libxml/tree.h' file not found
    iPhone,iPad如何获取WIFI名称即SSID
    获得手机的ip
    一步一步教你做ios推送
  • 原文地址:https://www.cnblogs.com/chjb/p/4298812.html
Copyright © 2011-2022 走看看