J'ai un lien qui appelle la ajax pour charger le contenu, et après que le contenu est chargé, ma fonction jquery ne fonctionne plusAjax chargé du contenu, jquery plugins ne fonctionne pas
Voici mon HTML
<a href="#" onclick="javascript:makeRequest('content.html','');">Load Content</a>
<span id="result">
<table id="myTable" valign="top" class="tablesorter">
<thead>
<tr>
<th>Title 1</th>
<th>Level 1</th>
<th>Topics</th>
<th>Resources</th>
</tr>
</thead>
<tbody>
<tr>
<td>Example title 1</td>
<td>Example level 1</td>
</tr>
<tr>
<td>Example title 2</td>
<td>Example level 2</td>
</tr>
</tbody>
</table>
</span>
Le tableau est trié à l'aide du plugin de trieur de tables jquery à partir de http://tablesorter.com/docs/ Une fois le contenu ajax chargé, un autre jeu de tables contenant des données différentes est affiché. Cependant, le tri ne fonctionne plus.
Voici mon script ajax qui est utiliser pour charger le contenu:
var http_request = false;
function makeRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url + parameters, true);
http_request.send(null);
}
function alertContents() {
if (http_request.readyState == 4) {
// alert(http_request.status);
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('result').innerHTML = result;
} else {
alert('There was a problem with the request.');
}
}
}
Toute idée comment je peux obtenir les plugins jquery au travail après le contenu est chargé? J'ai cherché et changé la fonction de clic de jquery.tablesorter.js en direct() comme ceci $headers.live("click",function(e)
mais cela ne fonctionne pas aussi bien.
Comment puis-je faire fonctionner les fonctions de jquery après le chargement du contenu? Merci
script de mise à jour pour le test:
<a href="#" id="test" onClick="contentDisp()">Load Content</a>
<div id="result"></div>
<script type="text/javascript">
function contentDisp()
{
$.ajax({
url : "test.html",
success : function (data) {
$("#result").html(data);
$("#myTable").tablesorter();
$("#myTable").trigger("update");
}
});
}
</script>
Ce mon test.html. Le tri de la table fonctionne si je ne le mets pas dans le contenu chargé. Une fois chargé en div, le tri ne fonctionne plus.
<table id="myTable" valign="top" class="tablesorter">
<thead>
<tr>
<th class="header">Title 1</th>
<th class="header">Level 1</th>
</tr>
</thead>
<tbody>
<tr>
<td>Example title 1</td>
<td>Example level 1</td>
</tr>
<tr>
<td>Example title 2</td>
<td>Example level 2</td>
</tr>
</tbody>
</table>
Pourquoi allez-vous à tous les problèmes http_request lorsque jQuery a la charge intégrée fonction qui le rend tellement plus facile? http://api.jquery.com/load/ – jbnunn
Mes liens sont dynamiques, j'ai un problème pour assigner les différents ID div, donc j'utilise l'autre méthode ajax – Sylph
Vous pouvez accéder à des ID div comme '$ (" # résultat ") '. Si vous utilisiez jQuery, vous pouviez accéder à la div dans le contexte des données renvoyées. Ce serait utile pour votre cas, je pense. – sirhc