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

1. 自定义事件

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

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

//触发hello事件
element.trigger("hello");

2. 事件冒泡

* 什么是事件冒泡*
在一个对象上触发某类事件(比如单击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');
   });
})

......

3. 事件委托

事件委托的写法

$(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的区别

  1. append(content)方法

方法作用:向每个匹配的元素内部追加内容。

参数介绍:content (): 要追加到目标中的内容。

用法示例:

HTML代码为

I come from

I love

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

结果为:

I come from china

I love china

  1. 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();

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