2013-04-24 45 views
0

使用jquery load函数刷新div的内容。使用Jquery load来刷新div,然后在重新显示内容之前单击一个链接

我开始通过隐藏的div

$('.dashboard-body').fadeOut(50); 

然后阿贾克斯负载 - 刷新内容

load事件之后,并同时刷新DIV仍有隐忧ID喜欢点击的内容之一分页链接。然后当再次显示div时,会显示正确的内容。

继承人不起作用的代码。我使用livequery插件作为DOM中新元素的侦听器。

$('.dashboard-body').load(target, function(){ 
       $('.pagination ul li a').livequery(function(){ 
        $(this).each(function(){ 
         var target_page = $(this).html(); 
         if(target_page == return_page){ 
          $(this).click(); 
         } 
        }); 
       }); 

       $('.dashboard-body').fadeIn('slow',function(){ 
        //success 
       }); 

      }); 

上面的代码在我的脑海中执行以下操作。

它使用类仪表板主体将目标页面加载回div。

其使用的liveQuery

然后,它在每一个环节迭代发现

它发现链接数值即监听加载到DOM中新分页链接。 1,2,3 ....并且被定义为潜在的目标页码。

然后如果目标页面和返回页码(这是一个预定义的变量)是相等的。点击此链接。

这一切似乎工作和使用控制台我可以看到,本声明

if(target_page == return_page){ 

是真的,一旦如预期,但Click事件不会发生,就好像犯规存在的元素,但它应该做的正如它刚刚迭代他们。

我不能看到什么是错的任何想法?或者,还有更好的方法?

回答

0

我做了一个测试http://jsfiddle.net/y6yJN/没有.load - 它按预期工作,点击处理程序至少在我的浏览器中工作得很好。另外,我使用.text()而不是.html()来获取链接中的字符串编号。

我一块标记

<div class="pagination"> 
    <ul> 
     <li> 
      <a href="#example">1</a> 
     </li> 
     <li> 
      <a href="#example2">2</a> 
     </li> 
     <li> 
      <a href="#example3">3</a> 
     </li>   
    </ul> 
</div> 

和脚本:

var return_page = '2'; //some string 

//click handler for links 
$('.pagination ul li a').click(function(e){ 
    e.preventDefault; 
    alert($(this).attr('href')); 
    return false; 
}); 


//must alert '#example2' on page load 
$('.pagination ul li a').each(function(){ 
    page_number = $(this).text(); 
    if(page_number === return_page){ 
     $(this).click(); 
    } 
}); 

此外我认为你不需要的liveQuery或如此,因为回调函数被调用的DOM更改后,使得jQuery的已经在新的DOM上收集了。我可以在这里错了。

+0

谢谢您的回答,但没有的liveQuery每个循环犯规找到任何元素。我刚刚绑住了它。我的代码适用于IF语句中的代码。点击不会触发。但是,如果我改变点击添加类它工作得很好。 – Aparistar 2013-04-24 09:44:37

+0

好的。你能附加一个链接的标记,它被加载到.pagination中吗? – 2013-04-24 10:08:46

+0

即使没有淡出和淡入只是这个码$(”。仪表盘体 ')。负载(目标,功能(){ \t \t \t \t \t //$('.dashboard-body').fadeIn('slow' ,函数(){ \t \t \t \t \t \t的console.log($(”分页UL立一个:方程(1)。 ')文本()); \t \t \t \t \t $(' 分页UL里。 :eq(1)')。click(); \t \t \t \t //}); \t \t \t \t});它不起作用。控制台返回一个空字符串 – Aparistar 2013-04-24 10:20:19

0

我需要添加此代码为click事件处理程序

$('body').on('click','.pagination ul li a',function(event){ 
相关问题