我爱编程

jQuery选择器_Dom操作_样式_事件处理_动画

2017-07-31  本文已影响0人  mhy_web
题目1: jQuery 能做什么?
题目2: jQuery 对象和 DOM 原生对象有什么区别?如何转化?

对于一个特定结果集,我们想获取到指定index的jQuery对象,可以使用eq方法

$('div').eq(3);// 获取结果集中的第四个jQuery对象

我们可以通过类数组下标的获取方式或者get方法获取指定index的DOM对象,也就是我们说的jQuery对象转DOM对象

$('div')[2];
$('div').eq(2);

转换为原生DOM.png 原生DOM转换为jQuery对象
题目3:jQuery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?
$("#nav").on("click",function(){
    console.log("hello")
});
$( "#foo" ).unbind(); 
$( "#foo").unbind( "click" );

.live()

$('a').live('click',function(){
  alert('harrisking')
});

JQuery把alert函数绑定到$(document)元素上,并使用’click’和’a’作为参数。任何时候只要有事件冒泡到document节点上,它就查看该事件是否是一个click事件,以及该事件的目标元素与’a’这一CSS选择器是否匹配,如果都是的话,则执行函数。

.delegate()

    $('#container').delegate('a', 'click', function() {
    alert("That tickles!")
    });

JQuery扫描文档查找$(‘#container’),并使用click事件和’a’这一CSS选择器作为参数把alert函数绑定到$(‘#container’)上。任何时候只要有事件冒泡到$(‘#container’)上,它就查看该事件是否是click事件,以及该事件的目标元素是否与CCS选择器相匹配。如果两种检查的结果都为真的话,它就执行函数。

为什么.delegate()要比.live()好用?

$('a').live('click', function() { 
blah()
});
// 或者
$(document).delegate('a', 'click', function() {
blah() 
});

后者实际上要快过前者,因为前者首先要扫描整个的文档查找所有的$(‘a’)元素,把它们存成jQuery对象。

.on()

// Bind

$( "#members li a" ).on( "click", function( e ) {
} ); 
$( "#members li a" ).bind( "click", function( e ) {
} );

 // Delegate

$( "#members" ).on( "click", "li a", function( e ) {
} ); 
//注意子元素参数位置$( "#members" ).delegate( "li a", "click", function( e ) {
} );

.off()

off():移除用on()绑定的事件处理程序

从所有的p中移除所有的事件:

$( "p" ).off();

从所有的p中移除click的事件:

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

将事先绑定的方法作为第三个参数传参来移除绑定事件:


// Code to handle some kind of event

};

// ... Now foo will be called when paragraphs are clicked ...

$( "body" ).on( "click", "p", foo );

// ... Foo will no longer be called.

$( "body" ).off( "click", "p", foo );

通过命名空间移除绑定函数:

var validate = function() {

// Code to validate form entries

};

// Delegate events under the ".validator" namespace

$( "form" ).on( "click.validator", "button", validate );

$( "form" ).on( "keypress.validator", "input[type='text']", validate );

// Remove event handlers in the ".validator" namespace

$( "form" ).off( ".validator" );

live方法被废弃on事件绑定把上面三种方法统一了,用起来更方便。

题目4:jQuery 如何展示/隐藏元素?
图片.png
  <div class='box'>
    <button class="btn1">消失</button>
    <button class="btn2">出现</button>
    <button class="btn3">切换</button>    
  </div>
  <div class='content'>content</div>
  <script>
    $('.btn1').on('click',function(){
      $('.content').hide('5000')
    })
    $('.btn2').on('click',function(){
      $('.content').show('2000')
    })
    $('.btn3').on('click',function(){
      $('.content').toggle('2000')
    })   
  </script>

效果见题目5

题目5: jQuery 动画如何使用?

task14-5

题目6:如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

(1) 设置和获取元素内部 HTML 内容:

html([string])
这是一个读写两用的方法,用于获取/修改元素的innerHTML

$('div').html()
$('div').html('123')

(2) 设置和获取元素内部文本:
text()
和html方法类似,操作的是DOM的innerText值

$('#test').text(); 
$('#test').text(这是要更改的内容);
题目7:如何设置和获取表单用户输入或者选择的内容?如何设置和获取元素属性?
$(‘selector’).val();//获取表单用户输入值;
$(‘selector’).val(‘…’);//设置输入值;
$(‘selector’).attr(‘name’)//获取元素属性;
$(‘selector’).attr(‘name’,’xxx’)//设置元素属性的值;
题目8: 使用 jQuery实现如下效果

task14-8

题目9:. 使用 jQuery 实现如下效果

8-2.gif840x607 615 KB
task14-9

题目10:实现如下效果

8-3-1.gif950x615 630 KB
task14-10

Ps:当点击按钮时使用如下数据

var products = [
    {
        img: 'http://img10.360buyimg.com/N3/jfs/t2242/92/1446546284/374195/9196ac66/56af0958N1a723458.jpg',
        name: '珂兰 黄金手 猴哥款',
        price: '¥405.00'
    },{
        img: 'http://img10.360buyimg.com/N3/jfs/t2242/92/1446546284/374195/9196ac66/56af0958N1a723458.jpg',
        name: '珂兰 黄金转运珠 猴哥款',
        price: '¥100.00'
    },{
        img: 'http://img10.360buyimg.com/N3/jfs/t2242/92/1446546284/374195/9196ac66/56af0958N1a723458.jpg',
        name: '珂兰 黄金手链 3D猴哥款',
        price: '¥45.00'
    }
];

题目11: 模仿视频6,完成 左右切换的 Tab 效果

图片.png

task14-11

上一篇 下一篇

猜你喜欢

热点阅读