2010-01-23 72 views
1

我试图使用AJAX请求将一些信息加载到使用JQuery的表中。我可以轻松地加载内容,但是我在添加事件处理程序以对加载的内容应用样式时遇到问题。如何在AJAX内容加载到JQuery后触发事件处理程序

我在表格中应用了条纹小部件。但是,当我的AJAX请求返回并且我的信息被附加到表体时,它没有应用的样式。

JQuery教程提到使用load事件来处理这个问题,但是我无法让它工作。

任何帮助,将不胜感激。

 
$(document).ready(function(){ 
    $("#cowTable").tablesorter(); 
    addTableStriping(); 
}); 

function addTableStriping(){ 
    $("#cowTable").tablesorter({ 
     // striping looking 
     widgets: ['zebra'] 
    }); 
}; 

$(function(){ 
    $("#loadCowsButton").click(function(){ 
     $.post("loadCows.php", "scottm", function(xml) { 
      $("#cowTable tbody").append(xml); 
     }); 
    }); 
}); 

+0

参见http://stackoverflow.com/questions/1875514/jquery-ready-event-not-fired-on-partial-page-load – Bryce 2013-11-02 05:40:50

回答

2

我找到了一个解决方案。您需要在更新后触发“applyWidgets”。感谢所有人的帮助,如果没有您的帮助,我不会发现这一点。

 
$(function(){ 
    $("#loadCowsButton").click(function(){ 
     $.post("loadCows.php", "scottm", function(xml) { 
      $("#cowTable").append(xml); 
      $("#cowTable").trigger("update"); 
      $("#cowTable").trigger("applyWidgets") 
     }); 
    }); 
}); 
1

你可能想尝试Livequery Plugin

实况查询通过结合事件或解雇的回调匹配的元素自动神奇,即使在页面已经被加载和DOM更新利用jQuery选择的力量。

1

这是你应该做的:

发现它的tablesorter website

它的长短之处在于你应该在追加数据后调用$("#cowTable").trigger("update");

+0

哪个元素我绑定到现场?它应该听哪个事件? – Scottm 2010-01-24 00:57:10

+0

我更新了我的答案。 – 2010-01-24 01:22:49

+0

谢谢,我稍后再尝试,我会让你知道我是怎么做到的。 – Scottm 2010-01-25 11:00:11

1

为什么不在AJAX回调中调用它?

$(function(){ 
    $("#loadCowsButton").click(function(){ 
     $.post("loadCows.php", "scottm", function(xml) { 
      $("#cowTable tbody").append(xml); 
      addTableStriping(); // <-- here 
     }); 
    }); 
}); 
+0

这不起作用,我已经试过了。 – Scottm 2010-01-26 21:07:46

+0

@斯科特姆,它应该工作......当你尝试它时发生了什么? – nickf 2010-01-26 22:45:04

0

这应该做到这一点..

$(function(){ 
    $("#loadCowsButton").click(function(){ 
     $.post("loadCows.php", "scottm", function(xml) { 
      $("#cowTable tbody").append(xml); 
      $("#cowTable").trigger("update"); 
     }); 
    }); 
}); 
+0

也许在写自己的作品之前先看看别人的答案是明智的。 – 2010-01-25 13:57:26

+0

点好了。我已经打开了窗口,直到我回答,你(和其他人)已经回答了...没有删除它,因为它是一个全面的答案(完整代码) – 2010-01-25 18:31:03

相关问题