案例:做个聊天室项目,数据都是通过ajax刷新出来的,而对新数据绑定的fancybox均无效,点击直接打开到了新页面而不是弹窗,解决方法其实很简单

 

简单分析:ajax加载内容是在$(document).ready()之后的操作,这个时候给绑定函数的时候,找到的元素集合中还不包括ajax加载的内容,所以原来的没有问题,Ajax后加载的就没有绑定

 

详细分析:我们的   fancybox 使用的时候要写在 jquery的  $(document).ready(function () {})里面,也就是在文档加载完之后,就绑定给了 fancybox  ,但是我们ajax之后出来的数据,已经是在这个文档绑定之后出现的,所以现在你点击是没有用的,因为没有绑定到时间,那么解决方法呢?就是重新绑定一遍写在ajax的success成功之后的里面

 

例如,我这里有个ajax,在成功之后会执行一段代码,在代码的最后一段,我们再重新绑定 fancybox 即可

(也就是页面里面,在$(document).ready(function () {})里面有一个 fancybox的绑定给原来的页面使用,而新的ajax出来的数据,就写在ajax的success成功之后的里面即可,这个时候就不用再写 $(document).ready(function () {}) 了)

 

$("a.showpic").fancybox({
width: 602,
height: 421,
autoScale: false,
transitionIn: 'none',
transitionOut: 'none',
type: 'iframe',
padding: 0,
margin: 0,
hideOnOverlayClick: false, /*如果不希望点击遮罩层或者是窗口其他的地方就能关闭, 那么这里就设置为false*/
showCloseButton: false /*设置右上角的关闭按钮为关闭状态*/ });

把上面的重新绑定事件, 放到下面的图里面的ajax里面的 success里面,就相当于是重新绑定了新出来的.showpic这个类的fancybox事件了

如果是fanxybox是在 UpdatePanel失效呢?参看 http://blog.csdn.net/eiwing/article/details/7090536

如果是 用jquery.fancybox时出现TypeError: loading is undefined 错误:参看http://egomu.com/development/40/

$("#fancybox-tmp").empty();//清除id等于fancybox-tmp下面的子元素
$("#fancybox-loading").empty();//清除id等于fancybox-loading下面的子元素
$("#fancybox-overlay").empty();//清除id等于fancybox-overlay下面的子元素
$("#fancybox-wrap").empty();//清除id等于fancybox-wrap下面的子元素
$("#fancybox-tmp").remove();//删除id等于fancybox-tmp元素
$("#fancybox-loading").remove();//删除id等于fancybox-loading元素
$("#fancybox-overlay").remove();//删除id等于fancybox-overlay元素
$("#fancybox-wrap").remove();//删除id等于fancybox-wrap元素

 

据说还有一种叫做 live方法 的方法,我没有用过,可以参考 jquery的 api 搜索

也可以看看这里

<script type="text/javascript">
<!--
jQuery(document).ready(function(){
jQuery(".brand li img").live('click',function(){ jQuery(this).parents("li").find("ul").slideToggle();
});
});
-->
</script>

fancybox 无效 失效 直接打开页面, ajax 之后 fancybox对更新的数据无效,Jquery失效 无效的更多相关文章

  1. 使用 jQuery Ajax 在页面滚动时从服务器加载数据

    简介 文本将演示怎么在滚动滚动条时从服务器端下载数据.用AJAX技术从服务器端加载数据有助于改善任何web应用的性能表现,因为在打开页面时,只有一屏的数据从服务器端加载了,需要更多的数据时,可以随着用 ...

  2. 【转】iframe和父页,window.open打开页面之间的引用

    [转]iframe和父页,window.open打开页面之间的引用 iframe和父页,window.open打开页面和被打开页面之间的关系可以通过下面的对象获取到 1)通过iframe加载的,在if ...

  3. window.history.pushState与ajax实现无刷新更新页面url

    ajax能无刷新更新数据,但是不能更新url HTML5的新API: window.history.pushState, window.history.replaceState 用户操作history ...

  4. HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)

    当按下一个按钮时,想打开一个新的标签页,可以使用window.open去实现但是因为使用window.open在新窗口或者新标签页中打开页面,有可能被浏览器给拦截.为了解决这个问题,可以模拟链接被按下 ...

  5. C# winform调用浏览器打开页面方法分享,希望对大家有帮助

    在很多客户端程序中我们都需要调用浏览器打开网页,这里分享一个可以在我winform程序调用浏览器的方法,测试通过了. 声明:这个方法是上万个用户测试通过的,不是我没有测试通过就拿出来分享,那个是自己搬 ...

  6. 如何在Flash中新窗口打开页面而不被拦截

    Flash的wmode必须是opaque或者transparent,允许Flash访问页面脚本.另外跳转必须是点击直接触发. 代码:ExternalInterface.call("windo ...

  7. (转载)HTML:模拟链接被按下,在新标签页打开页面,不使用window.open(可能被拦截)

    原文: http://www.cppblog.com/biao/archive/2010/08/21/124196.html 当按下一个按钮时,想打开一个新的标签页,可以使用window.open去实 ...

  8. Easyui datebox控件打开页面就验证解决方法

    问题描述: datebox时间控件有些场景下默认值需要为空,但是为空的情况下打开页面会自动验证,十分影响美观. 实现原理: <input class="easyui-databox&q ...

  9. 根据打开页面加载不同Js

    根据打开页面加载不同Js //根据打开页面加载不同JS $(document).ready(function(){ var href = document.URL; /*获取当前页面的URL*/ if ...

随机推荐

  1. 通过email分享

    MFMailComposeViewController *mailC=[[MFMailComposeViewControlleralloc] init]; if ([MFMailComposeView ...

  2. dede首页调用栏目内容{dedefield.content}的方法

    Dedecms的功能确实很强大,但是dedecms的全局变量有字节限制,使得我们在使用dedecms制作企业站的时候,首页无法调用大段大段的企业站. 其实dedecms还有另外一种调用大段内容的方法, ...

  3. Maven搭建webService (二) 创建服务端---使用web方式发布服务

    今天和大家分享 使用 web方式发布 webService 服务端.客户端 1.首先创建 一个web工程(增加Maven依赖) 2.增加Maven依赖包,如下: <!-- spring core ...

  4. oracle一些函数

    NVL( string1, replace_with):判断string1是否为空,如果是空就用replace_with代替. NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回 ...

  5. [转载]C# ListView用法详解

    一.ListView类 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设 ...

  6. 查看语句运行时间异常的原因(SQLServer)

    转载:http://www.cnblogs.com/fygh/archive/2012/01/17/2324926.html 查看语句运行时间异常的原因(SQLServer)   经常有开发同事反映如 ...

  7. UVA 11424 GCD - Extreme (I) (欧拉函数+筛法)

    题目:给出n,求gcd(1,2)+gcd(1,3)+gcd(2,3)+gcd(1,4)+gcd(2,4)+gcd(3,4)+...+gcd(1,n)+gcd(2,n)+...+gcd(n-1,n) 此 ...

  8. [STL]单词转换

    如果单词转换文件的内容是: 'em         themcuz         becausegratz      grateful i             Inah        nopos ...

  9. 2010年山东省第一届ACM大学生程序设计竞赛 Balloons (BFS)

    题意 : 找联通块的个数,Saya定义两个相连是 |xa-xb| + |ya-yb| ≤ 1 ,但是Kudo定义的相连是 |xa-xb|≤1 并且 |ya-yb|≤1.输出按照两种方式数的联通块的各数 ...

  10. 李洪强iOS开发之OC语言@property @synthesize和id

    OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...