jQuery四种事件绑定

jQuery中事件绑定

bind():是直接绑定在元素上

 $("p").bind("click mouseenter", function () {
            alert("我执行了");
 });

 $("p").bind("click", function () {
            alert("我执行了");
 });

live():则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。和.bind()的优势是支持动态数据。

$('p').live('click', function () {
    $(this).clone().appendTo('#panel');
});

delegate():则是更精确的小范围使用事件代理,性能优于.live()

    $("div").delegate("p", "click", function () {
            alert("我执行了委托事件");
        });

on():则是最新的1.9版本整合了之前的三种方式的新事件绑定机制

    $("div").on("click", "p", function () {
            alert("我注册的是委托事件");
            console.log(this);
   });

1. delegate() 和 on() 的区别:两者区别是seleter和events顺序不同

2. 一个元素自己注册了事件,而且还注册了委托事件,两个事件相同,则先执行委托事件,再处理自己身上的事件

3.事件解绑: off(envent1,envent2…)

$("div").off("click mouseenter");

4.只解除委托事件

$("div").off("click","**");

5. 事件触发

 $(function () {
        $("#txt").focus(function () {
            alert("我执行了");
        });

        $("#btn").click(function () {
                $("#txt").focus();    // 该行代码就是来触发focus事件的

                // $("#txt").trigger("focus"); 方法触发事件
                // $("#txt").triggerHandler("focus") 方法触发事件
        });
   });

    两种方法触发事件的区别: 
        trigger():会触发浏览器的默认行为
        triggerHandler():不会触发浏览器默认行为

你可能感兴趣的:(javascript)