jquery tablesorter + ajax div-Inhalt-update-problem
Ich habe Probleme mit meinem tablesorter und ajax div content-update. Sobald die ajax neu geladen wird alle tablesorter Funktionalitäten verloren gehen. Ich habe versucht livequery, aber es scheint nicht zu funktionieren über erste Auflistung der Tabelle.
<script type="text/javascript">
$(document).ready(function(){
$(".tabs > ul").tabs();
$("#sortabletable").tablesorter({
headers: {
4: { sorter: false },
5: { sorter: false }
},
widgets:['zebra'],
sortlist:[[0]]
});
});
$("#sortabletable").livequery(function(){
$(this).tablesorter({
headers: {
4: { sorter: false },
5: { sorter: false }
},
widgets:['zebra'],
sortlist:[[0]]
});
});
</script>
//The AJAX function...
function AJAX(){
try{
xmlHttp=new XMLHttpRequest(); //Firefox, Opera 8.0+, Safari
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); //Internet Explorer
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
}
catch (e){
alert("Your browser does not support AJAX.");
return false;
}
}
}
}
//Timestamp for preventing IE caching the GET request (common function)
function fetch_unix_timestamp(){
return parseInt(new Date().getTime().toString().substring(0, 10))
}
////////////////////////////////
//
//Refreshing the DIV TIMEDIV
//
////////////////////////////////
function events_listings(){
//Customise those settings
var seconds = 5;
var divid = "tab01";
var url = "events_listings.php";
//Create xmlHttp
var xmlHttp_one = AJAX();
//No cache
var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;
//The code...
xmlHttp_one.onreadystatechange=function(){
if(xmlHttp_one.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp_one.responseText;
setTimeout('events_listings()',seconds*1000);
}
}
xmlHttp_one.open("GET",nocacheurl,true);
xmlHttp_one.send(null);
}
//Start the refreshing process
window.onload = function startrefresh(){
setTimeout('events_listings()',seconds*1000);
}
////////////////////////////////
//
//Refreshing the DIV TIMEINWASHINGTON
//
////////////////////////////////
var formvar = "";
function view_job(temp){
//Customise those settings
var seconds = 8;
var divid = "tab02";
var url = "view_job.php";
formvar = temp;
//Create xmlHttp
var xmlHttp_two = AJAX();
//No cache
var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp+"&"+formvar;
//The code...
xmlHttp_two.onreadystatechange=function(){
if(xmlHttp_two.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp_two.responseText;
setTimeout('view_job(formvar)',seconds*1000);
}
}
xmlHttp_two.open("GET",nocacheurl,true);
xmlHttp_two.send(null);
}
//Start the refreshing process
window.onload = function startrefresh(){
setTimeout('view_job(formvar)',seconds*1000);
}
InformationsquelleAutor Nalla | 2009-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach dem laden das Ergebnis, die Sie benötigen, zu tun
$("#table").tablesorter()
einmal mehr neu zu Sortieren. Auch, anstatt zu schreiben Ihre ajax-code von hand, verwenden Sie$.get
oder$.post
von jqueryKeine sorgen 🙂 Sie können upvote und markieren der Antwort als angenommen, wenn Sie möchten
Aufruf der trigger () - Methode funktionieren sollte, als nach meiner Antwort. Ich vermute, dass es möglicherweise weniger Aufwand als Berufung .tablesorter().
InformationsquelleAutor Click Upvote
Statt .tablesorter() wieder, können Sie ein update auslösen statt, ohne den overhead für den Aufruf .tablesorter():
Ich verwendet habe, dieses erfolgreich in meinem eigenen Projekt. Sie können die trigger () - Aufruf in Ihr :Erfolgs-handler.
HTH
OMG, Sie haben mich gerettet. Danke danke danke.
In meinem Projekt nach der Aktualisierung der Tabelle Körper, einmal klickte ich auf jede Spalte sorter, ersetzt es den Körper mit dem letzten Gehalt. Aber mit dieser Lösung (trigger("update")) funktioniert wie ein Charme. Dank
Ich habe versucht, diese option, aber es funktioniert nicht für mich. Die neue Instanziierung tut, was bedeutet $("#xxx").tablesorter();
Hi @Schaden - könnte Sie nach ein paar code?
InformationsquelleAutor Ryan Shripat
Ihre ursprüngliche Problem war, dass der Live-Abfrage kann nur erkennen, änderungen am Dokument begann mit einem jQuery-Aufruf.
Direkt Einstellung innerHTML wird nicht dazu führen es auf das Feuer. Ändern, die Zeile zu
$("#"+divid).html(xmlHttp_one.responseText)
hätte dein problem gelöst.Ich bin froh zu hören, dass du eine Lösung gefunden! Beachten Sie jedoch, dass die Live-Abfrage zu Scannen Sie das Dokument jedes mal, wenn es geändert wird — das ist bequem, aber kommt mit einer großen Leistungseinbuße. Es wäre besser, um den Anruf zu
tablesorter()
in IhremjQuery.ajax(success:)
Funktion.InformationsquelleAutor s4y
Ich hatte das gleiche problem und fand diese Methode.
Es ist nicht sehr hübsch, aber es funktioniert!
InformationsquelleAutor Brahim Laarif
Fand eine Lösung mit jQuery .ajax-Funktion. viel einfacher und funktioniert perfekt.
InformationsquelleAutor Nalla
Wie bereits erwähnt verwenden die jquery-AJAX-call ist der beste Weg zu gehen 😛 aber ich fand den post ein bisschen vage für Neulinge so, hier ist der code, den ich verwendet in meinem Projekt:
InformationsquelleAutor
Verwenden Sie die ajaxStop-Funktion und der code wird ausgeführt, nachdem der ajax-Aufruf abgeschlossen ist.
InformationsquelleAutor Jonathan Rand
Ich bin ganz neu in java/ajax-Programmierung, aber habe genau das gleiche problem - wenn ich update den Inhalt von einem div (mit ajax) mit meiner Tabelle, tablesorter funktioniert nicht. Wenn ich laden Sie die Tabelle direkt auf der ersten Seite (nicht in einem div), tablesorter funktioniert perfekt.
So, ich wäre dankbar wenn man erklären kann, die in mehr details, wie genau Sie geändert haben Ihren code, um es zu lösen.
Dank, Bojan
InformationsquelleAutor
Die Antwort ist irrelevant für die Frage, aber es könnte jemand helfen.
Im Falle der be-Tabelle Inhalte per AJAX-Aufruf die Funktion tablesorter() muss aufgerufen werden, nach erfolgreicher Ausführung von AJAX-call.
Code, der erklärt, das gleiche -->
Den Inhalt nutrition.xml Datei :
InformationsquelleAutor alieNeha