发表于: 2019-11-18 21:52:08

0 1057


今日完成:今天主要写了杀人页面与法官台本





明日计划: 接着写页面





遇到的问题:  遇到的问题是不知道自己的思路是不是比较好的,好奇还有没有更好的解决方案。





收获:

           1 了解了switch语句之后,今天用了一下,深深的发现了它的方便之处,代码简单明了,结构清晰,多个

判断的时候再也不想用if else 语句了。一下例子为例,完美替代  if   else 判断。

var day=new Date().getDay();

switch (day)

{

case 0:   x =   "Today it's Sunday"  ;        break ;

case 1:   x =   "Today it's Monday" ;        break ;

case 2:   x =   "Today it's Tuesday";       break ;

case 3:   x =   "Today it's Wednesday";    break ;

}



      2  JQuery中事件绑定的方法,以前只知道用   .click(function(){  }),现在才知道原来事件绑定还有许多更

便捷更强大的方法可以用。


1   bind()方法,基本用法为:


$("div p").bind("click", function () {     

    alert($(this).text());

})

 也可以简写成

$("div p").click(function () {

    alert($(this).text());

})

bind()方法缺点:  

【1】用了隐式迭代的方法,如果匹配到的元素特别多的时候,比如如果我在div里放了50个p元素,就得执行绑定50次。对于大量元素来说,影响到了性能                       

【2】对于尚未存在的元素,无法绑定


2  delegate()方法,基本用法:


$("div").delegate("p", "click", function () {

    alert($(this).text());

});

采用了事件委托的概念。不是直接为p元素绑定事件,而是为其父元素(或祖先元素也可)绑定事件,当在div内任意元素上点击时,事件会一层层从event target向上冒泡,直至到达你为其绑定事件的元素


on()方法bind()还是delegate()其实都是通过on()方法实现的,只是参数不同


JQuery源码里面bind() delegate()方法的实现代码

 bind: function( types, data, fn ) {

     return this.on( types, null, data, fn );

    },

    unbind: function( types, fn ) {

     return this.off( types, null, fn );

    },

    delegate: function( selector, types, data, fn ) {

     return this.on( types, selector, data, fn );

    }

    undelegate: function( selector, types, fn ) {

 // ( namespace ) or ( selector, types [, fn] )

     return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );

    }


上述例子用on() 方法写:


$("div").on("click","p",function(){

    alert($(this).text());

})



1.选择器匹配到的元素比较多时,不要用bind()迭代绑定

2.用id选择器时,可以用bind()

3.需要给动态添加的元素绑定时,用delegate()或者on()

4.用delegate()和on()方法,dom树不要太深

5.尽量使用on()



返回列表 返回列表
评论

    分享到