zoukankan      html  css  js  c++  java
  • JQuery 绑定事件

    在日常写代码的时候 不免有绑定代码,对于新手的我,对JQ中事件的绑定做一个大致的区分。

    jQuery on()方法是官方推荐的绑定事件的一个方法。

    $(selector).on(event,childSelector,data,function,map)


    由此扩展开来的几个以前常见的方法有.

    bind()
    $("p").bind("click",function(){
        alert("I‘m you friend---MYmingk.");
      });
    
      $("p").on("click",function(){
        alert("I‘m you friend---MYmingk.");
      });
    delegate()
     $("#div1").on("click","p",function(){
        $(this).css("background-color","pink");
      });
    
      $("#div2").delegate("p","click",function(){
        $(this).css("background-color","pink");
      });
    live()
    $("#div1").on("click",function(){
        $(this).css("background-color","pink");
      });
    
      $("#div2").live("click",function(){
        $(this).css("background-color","pink");
      });

    以上三种方法在jQuery1.8之后都不推荐使用,官方在1.9时已经取消使用live()方法了,所以建议都使用on()方法。

    tip:如果你需要移除on()所绑定的方法,可以使用off()方法处理。

    $(document).ready(function(){
      $("p").on("click",function(){
        $(this).css("background-color","pink");
      });
      $("button").click(function(){
        $("p").off("click");
      });
    });


    tip:如果你的事件只需要一次的操作,可以使用one()这个方法

    $(document).ready(function(){
      $("p").one("click",function(){
        $(this).animate({fontSize:"+=6px"});
      });
    });


    trigger()绑定

    $(selector).trigger(event,eventObj,param1,param2,...)
    $(document).ready(function(){
      $("input").select(function(){
        $("input").after(" Text marked!");
      });
      $("button").click(function(){
        $("input").trigger("select");
      });
    });


    多个事件绑定同一个函数

    $(document).ready(function(){
      $("p").on("mouseover mouseout",function(){
        $("p").toggleClass("intro");
      });
    });


    多个事件绑定不同函数

    $(document).ready(function(){
      $("p").on({
        mouseover:function(){$("body").css("background-color","lightgray");}, 
        mouseout:function(){$("body").css("background-color","lightblue");}, 
        click:function(){$("body").css("background-color","yellow");} 
      });
    });


    绑定自定义事件

    $(document).ready(function(){
        $("p").on("myOwnEvent", function(event, showName){
            $(this).text(showName + "! What a beautiful name!").show();
        });
        $("button").click(function(){
            $("p").trigger("myOwnEvent",["Anja"]);
        });
    });        

    传递数据到函数

    function handlerName(event) {
        alert(event.data.msg);
    }
    
    $(document).ready(function(){
        $("p").on("click", {msg: "You just clicked me!"}, handlerName)
    });

    适用于未创建的元素

    $(document).ready(function(){
        $("div").on("click","p",function(){
            $(this).slideToggle();
        });
        $("button").click(function(){
            $("<p>This is a new paragraph.</p>").insertAfter("button");
        });
    });
    
        
  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/wymbk/p/5850296.html
Copyright © 2011-2022 走看看