美文网首页
jQuery方法以及事件

jQuery方法以及事件

作者: 凌屿 | 来源:发表于2018-09-19 19:56 被阅读6次

jQuery索引值

$(function(){
        $('.list li').click(function(){
            // alert(this.innerHTML);//弹出标签中的内容
            alert($(this).index());//弹出下标
        })
    })

jquery特殊效果

fadeIn() 淡入
 $btn.click(function(){
        $('#div1').fadeIn(1000,'swing',function(){
               alert('done!');
        });
});

fadeOut() 淡出
fadeToggle() 切换淡入淡出
hide() 隐藏元素
show() 显示元素
toggle() 依次展示或隐藏某个元素
slideDown() 向下展开
slideUp() 向上卷起
slideToggle() 依次展开或卷起某个元素

jquery链式调用

jquery对象的方法会在执行完后返回这个jquery对象,所有jquery对象的方法可以连起来写:

$('#div1') // id为div1的元素
.children('ul') //该元素下面的ul子元素
.slideDown('fast') //高度从零变到实际高度来显示ul元素
.parent()  //跳到ul的父元素,也就是id为div1的元素
.siblings()  //跳到div1元素平级的所有兄弟元素
.children('ul') //这些兄弟元素中的ul子元素
.slideUp('fast');  //高度实际高度变换到零来隐藏ul元素

jquery动画

通过animate方法可以设置元素某属性值上的动画,可以设置一个或多个属性值,动画执行完成后会执行一个函数。

$('#div1').animate({
        width:300,
        height:300
},1000,swing,function(){
        alert('done!');
});
  • 参数可以写成数字表达式:
$('#div1').animate({
    width:'+=100',
    height:300
},1000,swing,function(){
    alert('done!');
});

尺寸相关、滚动事件

  1. 获取和设置元素的尺寸
width()、height()    获取元素width和height  
innerWidth()、innerHeight()  包括padding的width和height  
outerWidth()、outerHeight()  包括padding和border的width和height  
outerWidth(true)、outerHeight(true)   包括padding和border以及margin的width和height
  1. 获取元素相对页面的绝对位置
offset()
  1. 获取可视区高度
$(window).height();
  1. 获取页面高度
$(document).height();
  1. 获取页面滚动距离
$(document).scrollTop();  
$(document).scrollLeft();
  1. 页面滚动事件
$(window).scroll(function(){  
    ......  
})

jquery事件列表

方法 作用
blur() 元素失去焦点
focus() 元素获得焦点
change() 表单元素的值发生变化
click() 鼠标单击
dblclick() 鼠标双击
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)
hover() 同时为mouseenter和mouseleave事件指定处理函数
mouseup() 松开鼠标
mousedown() 按下鼠标
mousemove() 鼠标在元素内部移动
keydown() 按下键盘
keypress() 按下键盘
keyup() 松开键盘
load() 元素加载完毕
ready() DOM加载完成
resize() 浏览器窗口的大小发生改变
scroll() 滚动条的位置发生变化
select() 用户选中文本框中的内容
submit() 用户递交表单
toggle() 根据鼠标点击的次数,依次运行多个函数
unload() 用户离开页面

绑定事件的其他方式

$(function(){
    $('#div1').bind('mouseover click', function(event) {
        alert($(this).html());
    });
});

取消绑定事件

$(function(){
    $('#div1').bind('mouseover click', function(event) {
        alert($(this).html());
        // $(this).unbind();
        $(this).unbind('mouseover');
    });
});

主动触发与自定义事件

主动触发

可使用jquery对象上的trigger方法来触发对象上绑定的事件。

自定义事件

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

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

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

事件冒泡

什么是事件冒泡

在一个对象上触发某类事件(比如单击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>

阻止默认行为

阻止右键菜单

$(document).contextmenu(function(event) {
    event.preventDefault();
});

合并阻止操作

实际开发中,一般把阻止冒泡和阻止默认行为合并起来写,合并写法可以用

// event.stopPropagation();
// event.preventDefault();

// 合并写法:
return false;

事件委托

事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作,事件委托首先可以极大减少事件绑定次数,提高性能;其次可以让新加入的子元素也可以拥有相同的操作。

  • 一般绑定事件的写法
$(function(){
    $ali = $('#list li');
    $ali.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>
  • 事件委托的写法
$(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();

jquery元素节点操作

  • 创建节点
var $div = $('<div>');
var $div2 = $('<div>这是一个div元素</div>');
  • 插入节点
    1. append()和appendTo():在现存元素的内部,从后面插入元素
var $span = $('<span>这是一个span元素</span>');
$('#div1').append($span);
......
<div id="div1"></div>
  1. prepend()和prependTo():在现存元素的内部,从前面插入元素
  2. after()和insertAfter():在现存元素的外部,从后面插入元素
  3. before()和insertBefore():在现存元素的外部,从前面插入元素

删除节点

$('#div1').remove();

滚轮事件与函数节流

jquery.mousewheel插件使用

jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事件不兼容,可以使用jquery的滚轮事件插件jquery.mousewheel.js。

函数节流

javascript中有些事件的触发频率非常高,比如onresize事件(jq中是resize),onmousemove事件(jq中是mousemove)以及上面说的鼠标滚轮事件,在短事件内多处触发执行绑定的函数,可以巧妙地使用定时器来减少触发的次数,实现函数节流。

相关文章

  • jQuery方法以及事件

    jQuery索引值 jquery特殊效果 jquery链式调用 jquery对象的方法会在执行完后返回这个jque...

  • jqurey事件

    jQuery 事件函数 jQuery 事件处理方法是 jQuery 中的核心函数。 事件处理程序指的是当 HTML...

  • jQuery事件操作和插件

    jQuery事件操作 简单方式注册事件 语法:jQuery对象.事件名(事件处理程序) on方法注册事件 注册简单...

  • jQuery 方法总结及几个常用插件

    jQuery 中的事件方法 jQuery 中的页面效果中使用到的方法 jQuery 中的插件总结

  • JQuery原理分析之 属性和样式和事件的操作

    在原来的基础上增加了类型jquery 的属性和样式操作方法,以及事件的操作 代码如下

  • jQuery 事件方法

    方法描述 bind() 向匹配元素附加一个或更多事件处理器 blur() 触发、或将函数绑定到指定元素的 blur...

  • jquery事件方法

    on :在被选元素及子元素上添加一个或多个事件处理程序 on() 方法是 bind()、live() 和 dele...

  • jQuery 事件方法

    jQuery 事件方法 事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。 触发实例: $("b...

  • jQuery中添加移除样式,事件等问题

    jQuery 事件 - unbind() 方法作用:unbind()用于移除被选元素的事件处理程序,该方法能够移除...

  • jQuery事件绑定

    jquery 如何绑定事件?直接绑定和使用事件代理分别如何使用 在1.7之前的版本中jQuery处理事件有多个方法...

网友评论

      本文标题:jQuery方法以及事件

      本文链接:https://www.haomeiwen.com/subject/eycwnftx.html