发表于: 2020-08-27 22:50:01
1 1289
今天完成的任务:
完成了js任务二,正在进行任务三;进行数组乱序,随机分配玩家的序号;通过js获取input标签的value,根据toggle(),可以实现点击显示和隐藏视图;
明天计划的事情:
进行js任务3;
遇到的问题:
动态的在页面中添加内容,我开始是使用克隆的,发现只能单纯的复制,没有办法改变内容,然后使用jq的这个属性append()在元素结尾插入内容
收获:
跳转页面:
使用 location 对象可以通过很多方式来改变浏览器的位置。首先,也是最常用的方式,就是使用 assign()方法并为其传递一个 URL,如下所示。 location.assign("http://www.wrox.com"); 这样,就可以立即打开新 URL 并在浏览器的历史记录中生成一条记录。如果是将 location.href 或 window.location 设置为一个 URL 值,也会以该值调用 assign()方法。例如,下列两行代码与 显式调用 assign()方法的效果完全一样。 window.location = "http://www.wrox.com"; location.href = "http://www.wrox.com"; 在这些改变浏览器位置的方法中,最常用的是设置 location.href 属性。 另外,修改location对象的其他属性也可以改变当前加载的页面。下面的例子展示了通过将hash、 search、hostname、pathname 和 port 属性设置为新值来改变 URL。
jquery中的bind(),live(),delegate(),on()有什么区别?
1、bind (jQuery 1.3之前)
定义和用法:主要用于给选择到的元素.上绑定特定事件类型的监听函数;
语法: bind(type,[data],function(eventObject));
特点:
(1)、适用于页面元素静态绑定。只能给调用它的时候已经存在的元素绑定事件,不能给未来新增的元素绑定事件。
(2)、当页面加载完的时候,你才可以进行bind(),所以可能产生效率问题。
实例如下: $( "#members li a" ).bind( "click", function(e){});
2、live (jQuery 1.3之后)
定义和用法:主要用于给选择到的元素上绑定特定事件类型的监听函数;
语法: live(type, [data], fn);
特点:
(1)、live方法并没有将监听器绑定到自己(this)身上,而是绑定到了this.context上了。
(2)、live正是利用了事件委托机制来完成事件的监听处理,把节点的处理委托给了document,新添加的元素不必再绑定一次监听器。
(3)、使用live ( )方法但却只能放在直接选择的元素后面,不能在层级比较深,连缀的DOM遍历方法后面使用,即$(“ul”").live...可以,但$("body"),find("ul",.liv...不行;
实例如下: $( document ).on( "click", "#members li a", function(e){});
3、delegate (jQuery 1.4.2中引入)
定义和用法:将监听事件绑定在就近的父级元素上
语法: delegate(selector,type,[data],fn)
特点:
(1)、选择就近的父级元素,因为事件可以更快的冒泡上去,能够在第一时间进行处理。
(2)、更精确的小范围使用事件代理,性能优于.live()。可以用在动态添加的元素上。
实例如下:
$("#info_ table'").delegate("d","click" ,function(){/*显示更多信息*});
$("table'").find("#info").delegate("td", "click" ,function({/*显示更多信息*/});
4、on (1.7版本整合了之前的三种方式的新事件绑定机制)
定义和用法:将监听事件绑定到指定元素上。
语法: on(type,[selector],[data],fn)
实例如下:
$("#info_ _table").on("click" ,"td" ,function(){/*显示更多信息*});参数的位置写法与delegate不一-样。
说明: on方法是当前JQuery推荐使用的事件绑定方法,附加只运行一次就删除函数的方法是one()。
总结: .bind(), .live(), .delegatel().on()别对应的相反事件为:unbind(),.die(), .undelegate(),.off()
评论