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

2018-07-29  本文已影响0人  常伟波

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');
   });
})

......

<div class="father">
   <div class="son">
       <div class="grandson"></div>
   </div>
</div>

3. 事件委托

事件委托的写法

$(function(){
    $list = $('#list');
    $list.delegate('li', 'click', function(event) {
        $(this).css({background:'red'});
    });
})
...
<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

取消事件委托

// ev.delegateTarge 委托对象
$(ev.delegateTarge).undelegate();

// 上面的例子可使用 $list.undelegate();

4. jquery元素节点操作

创建节点
var $div = $('<div>');
var $div2 = $('<div>这是一个div元素</div>');
插入节点

1、append()和appendTo():在现存元素的内部,从后面插入元素

var $span = $('<span>这是一个span元素</span>');
$('#div1').append($span);
......
<div id="div1"></div>

2、prepend()和prependTo():在现存元素的内部,从前面插入元素

3、after()和insertAfter():在现存元素的外部,从后面插入元素

4、before()和insertBefore():在现存元素的外部,从前面插入元素

删除节点
$('#div1').remove();

append和appendTo的区别

  1. append(content)方法

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

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

用法示例:

HTML代码为<p>I come from </p><p>I love </p>

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

结果为:<p>I come from china</p><p>I love china </p>

  1. appendTo(expr)方法

方法作用:把所有匹配的元素追加到指定的元素元素集合中。

参数介绍:expr (String): 用于匹配元素的jQuery表达式。

用法示例:

HTML代码为<b>I love china </b><p></p>

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

结果为:><p><b>I love china </b></p>

使用appendTo这个方法是颠倒了常规的$(A).append(B)的操作,即不是把B追加到A中,而是把A追加到B中

删除节点
$('#div1').remove();
上一篇下一篇

猜你喜欢

热点阅读