2012-10-10 24 views
0

我在每页的页脚都有一个“Go全屏”链接。在document.ready()中,我有一个代码需要在点击此链接时执行。还有另外两个链接通过$ .ajax调用从此页上的下一页和上一页获取内容。内容加载正常,但一旦处理了ajax调用,“去全屏”链接停止工作。本质上,document.ready()中的click事件不会被调用。如何使一个位于document.ready()中的代码在ajax调用之后始终工作。

代码

$.ajax({ 
    url: $j('#prev a').attr('href'), 
    success: function(data) { 
       data=$j(data).find('.container > .row'); 
       $j('.container').html(data); 
       $j("#go-fullscreen").bind('click'); 
      } 
    }); 
+0

为什么使用'$ .ajax'但是'$ j(“selector”)'? '$'和'$ j'有什么区别? – temporalslide

+0

$ j只是为jquery不冲突。 – JMDee

回答

2

当你这样做;

$j("#go-fullscreen").bind('click'); 

您没有绑定到任何特定的事件处理函数,因此没有发生点击。您需要指定您希望在点击时执行的功能。详细信息请参见jQuery doc

$j("#go-fullscreen").bind('click', function() { /* your code here */}); 
+0

感觉很愚蠢。它正在工作! – JMDee

1

既然你没有张贴任何代码,我正在做一些假设。听起来像是在动态加载/更改页脚内容。此外听起来像你使用类似但是把点击:

$('a').click(function() { //... });

如果这都是真的,你想改变你如何连接最多的事件。看看.on

$('.container').on('click', '#go-fullscreen', function() { //... });

+0

感谢您的回答。我会查找'.on'。我已经添加了我的代码。 – JMDee

+0

你也可以在页面上发布HTML标记吗?另外,你正在使用.bind,但根本不给它回调。 – Gromer

+0

是的,包含页面上几乎所有内容的整个'.container'的数据在ajax调用中发生了变化。 – JMDee

相关问题