1、动态添加的按钮,点击动作没有反应
使用 jquery版本 为2.0。使用on()来添加点击动作 。但是没有反应 。 经查阅资料发现正规写法 为 : $(document).on("click",".one",function(){ *** });使用 $(document)的意义是使元素加载完成 后在 执行方法 。另外jquery1.9版本以上不能使用live()了 ,使用on()来代替。
延伸内容:
- die()被废弃,用off()替代。
- toggle()在1.8以后不推荐使用。替换的方式是把两个函数合并成一个函数的if-else两个区段,然后自己设置一个boolean变量,控制每次点击时应该执行哪个区段即可。
- prop设置的是某元素固有的属性,而attr设置的是写在html标签上的自定义属性。举个例子:
<input type="checkbox" checked="checked" haha="hello" > var v1 = $('input').prop("checked"); //返回true/false,是否被选中,随状态改变而改变 var v2 = $('input').attr("checked"); //返回"checked",这是你设置在标签上的,不会变 var v3 = $('input').attr("haha"); //返回"hello",自定义属性 var v4 = $('input').prop("haha"); //返回undefined,根本没有这个固有属性
- $.parseJSON传入空值
JQMIGRATE: jQuery.parseJSON requires a valid JSON string
jQuery之所以改这个接口,是为了和浏览器自带的JSON.parse接口对齐,从jQuery 1.9开始生效。这个问题常见于AJAX接收服务端返回值的时候。服务端可能返回一个空字符串,这时候调用该接口会产生错误。必须向$.parseJSON
传入合法的JSON字符串。修正方法如下:
var v1 = $.parseJSON(str); 替换为 var v1 = $.parseJSON( str ? str : "null" );
- hover()被废弃
’hover’以前可以看作是’mouseenter mouseleave’两个事件的别称。目前已经将该别称去掉了,所以代码中请用’mouseenter mouseleave’替换之。
2、angularjs ui-router 路由不刷新
首次点击刷新, 再次点击就 不刷新了 , 希望 能 实时刷新。
解决 : 在链接地址上加上: ui-sref-opts="{reload: true}"
3、angularjs表单验证和 浏览器 验证,提示信息 同时存在
解决: 加上 no-validation="false"
4、不同模块显示不同的title
controller.js
index.html
在$stateProvide.state中设置一个属性用力传递title内容,这里设置的是title属性
在主页的angualr.module()下运行run()函数用来获取router传来的title属性,每当网页更改跳转就会触发$stateChangeSuccess事件
这里的$stateChangeSuccess事件不可以用$routechangesuccess事件替代,如果不用ui-router插件则可以,代码如下:
router.js
controller.js