JQuery

作者: Maggie_77 | 来源:发表于2016-12-27 15:43 被阅读0次

3. jquery 对象和 DOM 原生对象有什么区别?如何转化?

  • 区别:
    dom元素: 通过原生js获取的dom节点是dom元素; 只能使用dom元素的属性和方法。
    jquery元素: 通过jquery选择器选择的元素是jquery元素;只能使用jquery的属性和方法。
  • 转化:
    1. dom->jquery,加$(dom)
    2. jquery->dom, jquery元素是以数组形式展现,选取数组的第几项就能转换为dom元素如: var $p1 = $('.p1'); var p1 = $p1[0]; //转换为dom元素

4. jquery中如何绑定事件?bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?使用on绑定事件使用事件代理的写法?

绑定事件方法:bind live delegate on

  • .bind()
$('a').bind('click', function() { 
    alert("That tickles!") 
});

这是最简单的绑定方法了。JQuery扫描文档找出所有的$(‘a’)元素,并把alert函数绑定到每个元素的click事件上。

  • unbind(): 移除 bind 绑定的事件
  • .live()
$('a').live('click', function() { 
    alert("That tickles!") 
});

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选择器相匹配。如果两种检查的结果都为真的话,它就执行函数。

  • .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(): 移除 on 绑定的事件
    推荐使用.on():on事件绑定把上面三种方法统一了,用起来更方便
    on绑定事件使用事件代理的写法:
$( "#members" ).on( "click", "li a", function( e ) {} );   

相关文章

网友评论

      本文标题:JQuery

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