页面局部刷新后,JS,JQ失效问题
来源:互联网 发布:unity3d在哪可以下载 编辑:程序博客网 时间:2024/05/16 11:38
起因:今天在做一个页面的时候,用了.net的空间UpdatePanel,但是当页面局部刷新之后,我在document Ready 后 JQ绑定的KeyUp事件居然失效了。
分析:
一:UpdatePanel ,页面局部刷新,而$()是页面全部刷新后才会执行。
于是我就把这句话去除了,但是依然没有触发KeyUp事件。
二:百度搜索了一下,发现keyUp事件其实本质是bind,而bind只能对当前元素进行绑定事件,对于未来事件不能绑定,所以需要使用live绑定事件,这一个好使了。
这个为转载详细区别:
1、click()与bind()
1).click()
在jqeury事件处理API中,bind()是其API基础。click(),mouseover(),mousermove等来处理事件,真正起作用的是bind()。而这些方法都只是辅助作用(别名函数),简化使用。他们都只有一个参数(触发事件时执行的回调函数).
2).bind()
bind()能更好的控制事件处理函数中的处理过程,且它可以一次绑定多个事件(事件名作为第一个参数,多个事件用空格分开,eg:bind('click contains',function(){}) 鼠标左右点击事件 )
所有实用bind()或者click(),mouserover()绑定的事件都可以使用unbind()方法解除绑定
2、live()
与bind()作用基本一样。
最重要区别:live()可以将事件绑定到当前和将来的元素(eg:为id=zy元素绑定点击事件,而当你用js动态生成一个节点并插入到dom文档结构中时,如果你是用bind()绑定的,怎么新插入的节点将不会有该bind绑定事件。而live()则可以);
缺点: 无法用于链式结构。
eg: $('.class').live('click',function(){ }) 正确写法
$('.class').find('span').live('click',function(){ }) 错误写法 无效
live()绑定的事件可用 die()方法解除绑定。
3、delegate()
与live()作用基本一样,但是解决live缺点。它通过将选择器内的上下文作为第一个参数来解决live问题(也就是delegate得第一个参数你可以当作是一个选择元素所用)。
eg. $('.class').delegate('span','mouseover',fucntion(){ }) 为class为class的元素下的所有span标签绑定mouseover事件。
通过delegate()绑定的事件可通过undelegate()方法解除处理函数的绑定。
三 鉴于分析2的原因, :绑定是一次性的,只对绑定的对象有效,刷新时删原对象,绑定没了,再建个同名长的一样的对象,也只是长的一样,并非原来的对象,需重新绑定
四:还有一种方法:如下所示
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
$("#txtDE").keyup(function (event) {
onlynum(this);
switch (event.keyCode) {
case 13: Get(); break;
}
});
- 页面局部刷新后,JS,JQ失效问题
- 关于ajax局部刷新后,js绑定事件失效的问题
- Asp.net采用UpdatePanel局部刷新js失效问题
- js局部刷新页面时间
- js实现页面局部刷新
- web页面局部刷新问题
- Js控制页面刷新(局部刷新&全页面刷新)
- Js控制页面刷新(局部刷新&全页面刷新)
- jq/js–ajax局部刷新的陷阱
- JS AJAX实现页面局部刷新~~~~
- JS AJAX实现页面局部刷新~~~~
- JS AJAX实现页面局部刷新~~~~
- iframe + js 实现HTML局部刷新页面
- js刷新页面问题
- updatepanel使用ajax时候代码被jq操作失效---局部刷新片【1】
- 页面提交 JS失效问题
- JQ load 实现局部刷新
- 关于jQuery页面刷新(局部、全部)问题
- Android&java的成长之路之四(自定义字母索引)
- LeetCode 64. Minimum Path Sum 解题报告
- hrbust 1954 哈理工oj 1954 神奇的国家【图论+邻接表+dfs】
- PostgreSQL中的常用元命令
- shiro入门实战笔记(12)--集成Spring
- 页面局部刷新后,JS,JQ失效问题
- AngularJs基础
- 设计模式-备忘录
- 《Effictive Objective-C 2.0》读书摘要(下)
- PHP 生成HTML文件
- 马云写给儿子的一封信,感动无数人!
- 避免循环引用
- maven 的三个生命周期
- 使用 Bluemix™ Live Sync 快速更新 Bluemix 上运行的应用程序实例