jQuery的自定义事件,事件的委托,节点操作

  1. 自定义事件

除了系统事件外,可以通过bind方法自定义事件,然后用tiggle方法触发这些事件。

//给element绑定hello事件
element.bind("hello",function(){
    alert("hello world!");
});

//触发hello事件
element.trigger("hello");
  1. 事件冒泡
  • 什么是事件冒泡*
    在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。

事件冒泡的作用
事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件。

阻止事件冒泡
事件冒泡机制有时候是不需要的,需要阻止掉,通过 event.stopPropagation() 来阻止

$(function(){
   var $box1 = $('.father');
   var $box2 = $('.son');
   var $box3 = $('.grandson');
   $box1.click(function() {
       alert('father');
   });
   $box2.click(function() {
       alert('son');
   });
   $box3.click(function(event) {
       alert('grandson');
       event.stopPropagation();

   });
   $(document).click(function(event) {
       alert('grandfather');
   });
})

......

  1. 事件委托

事件委托的写法

$(function(){
    $list = $('#list');
    $list.delegate('li', 'click', function(event) {
        $(this).css({background:'red'});
    });
})
...
  • 1
  • 2
  • 3
  • 4
  • 5
``` 取消事件委托 ``` // ev.delegateTarge 委托对象 $(ev.delegateTarge).undelegate(); // 上面的例子可使用 $list.undelegate(); ``` 4. jquery元素节点操作 创建节点 ``` var $div = $('
'); var $div2 = $('
这是一个div元素
'); ``` 插入节点 ``` 1、append()和appendTo():在现存元素的内部,从后面插入元素 var $span = $('这是一个span元素'); $('#div1').append($span); ......
``` 2、prepend()和prependTo():在现存元素的内部,从前面插入元素 3、after()和insertAfter():在现存元素的外部,从后面插入元素 4、before()和insertBefore():在现存元素的外部,从前面插入元素 删除节点 ``` $('#div1').remove(); ``` append和appendTo的区别 append(content)方法 方法作用:向每个匹配的元素内部追加内容。 参数介绍:content (): 要追加到目标中的内容。 用法示例: HTML代码为

I come from

I love

向所有p标签中追加一个单词china,则写法为 $("p").append("china"); 结果为:

I come from china

I love china

appendTo(expr)方法 方法作用:把所有匹配的元素追加到指定的元素元素集合中。 参数介绍:expr (String): 用于匹配元素的jQuery表达式。 用法示例: HTML代码为I love china

把标签b追加到p元素中,写法为$("b").appendTo("p"); 结果为:>

I love china

使用appendTo这个方法是颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中 删除节点 ``` $('#div1').remove(); ``` 作者:王学文 链接:https://www.jianshu.com/u/6a0f050f3f39 來源: 著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(jQuery的自定义事件,事件的委托,节点操作)