时间: 2020-08-25|18次围观|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 ) {} );   

文章转载于:https://www.jianshu.com/p/19a7c34af902

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《JQuery
   

还没有人抢沙发呢~