J'utilise tablesorter et tablesorter.pager. Voici mon code. Tout fonctionne très bien, sauf quand je clique sur la page suivante mon événement de clic de bouton ne se déclenche pas. Est-ce un problème connu avec jquery tablesorter?L'événement Click ne s'enregistre pas sur la deuxième page
Répondre
Il est parce que les éléments sont mis à jour, ceux que vous attacha le gestionnaire de clic pour sont partis, vous pouvez utiliser .live()
pour résoudre ce problème, changer ceci:
$("#peopletable tr.data").click(function() {
à ceci:
$("#peopletable tr.data").live('click', function() {
Sinon, si #peopletable
n'est pas détruit, vous pouvez utiliser .delegate()
, comme ceci:
$("#peopletable").delegate('tr.data', 'click', function() {
La création d'un nouvel élément ne dupliquera pas l'événement créé avec la méthode click dans laquelle la méthode live le fait.
J'ai également fait face au même genre de problème avec tablesortiePager deuxième page après l'utilisation Jeditable (edit in place) plugin pour certains éléments dans la table tablesortedPager utilisé.
J'ai essayé de modifier la fonction de liaison de données dans Jeditable comme suit
code original
$(this).bind(settings.event, function(e) {
ici settings.event
égal au paramètre de l'événement que nous définissons avec des options, par exemple: cliquez
modifié code
$(this).live(settings.event, function(e) {
Mais .. J'ai trouvé l'erreur avec tablesortedPager dans les pages autres que la première page n'est pas à cause de la liaison de l'événement d'élément. lorsque nous appelons tablesortedPager à toute table avec plusieurs lignes, seules les lignes de première page de la table est affectée sur le chargement de la page. donc seules les lignes de la première page sont appelées avec Jeditable plugin. les autres lignes des autres pages ne sont pas affectées au plugin. Pour cette raison, les événements d'autres pages que la première page ne fonctionneront pas.
pour éviter la situation ci-dessus, nous pouvons ajouter plug-in Jeditable appeler à l'intérieur fonction updatePageDisplay.
par exemple:
function updatePageDisplay(c) {
$(".tablerowdata").each(function(){
$(this).editable("ajax/save.php", {
tooltip : "click to edit...",
data : {"selectid1":"selectval1","selectid2":"selectval2","selectid3":"selectval3"},
type : "select",
submit : "ok",
event : "click",
select : "true",
});
});
- 1. HTMLUnit click() sur HtmlElement ne fonctionne pas
- 2. L'événement Jquery click ne se déclenche pas une deuxième fois avec le bouton dans asp.net GridView?
- 3. click Javascript() ne passera pas la valeur
- 4. removeClass ne fonctionne pas sur la deuxième balise DIV
- 5. click/clickAndWait ne fonctionne pas
- 6. Fonction ne retourne pas la deuxième colonne
- 7. La table ne répond pas à la deuxième requête jQuery
- 8. Deuxième scanf ne fonctionne pas
- 9. jQuery ne fonctionne pas la deuxième fois lorsqu'une page est appelée via ajax
- 10. jquery's .click() ne fonctionne pas?
- 11. Jquery - .click ne se déclenche pas sur le bouton submit
- 12. LinkButton n'appelle pas sur click()
- 13. uiwebview ne charge pas index.html la deuxième fois
- 14. L'événement Click ne fonctionne pas après la pagination ajax
- 15. L'événement Click ne fonctionne pas sur le contenu Ajax chargé
- 16. Pourquoi ne puis-je pas définir la largeur de la première colonne de la deuxième ligne sur cette page?
- 17. Le formulaire django ne fonctionne pas sur click submit
- 18. L'événement Click ne se déclenche pas sur l'ancre html
- 19. Sharepoint deuxième page bibliothèque
- 20. Windows Mobile Click Handler ne fonctionne pas
- 21. jquery événement click ne fonctionnent pas
- 22. délégation événement click simple ne fonctionne pas
- 23. .click ne semble pas tirer ... pourquoi?
- 24. AjaxControlToolkit: ModalPopupExtender ne fonctionne pas à la deuxième tentative
- 25. Question rapide à propos de ce problème, Pourquoi ne pas imprimer la deuxième valeur (deuxième valeur convertie) sur la chaîne?
- 26. Pagination sur la page d'index ne fonctionnant pas avec posts_per_page
- 27. Fonction ne fonctionne pas au deuxième appel
- 28. Javascript zoom avant/arrière en superposition ne fonctionne pas sur la deuxième charge d'image
- 29. Après .load, div ne changera pas la hauteur, mais après la deuxième, il sera
- 30. jQuery: la fonction click() ne fonctionne pas avec PrettyPhoto
Quel serait l'avantage d'utiliser délégué au lieu de vivre? –
@Cptcecil - Tous les deux écoutent l'événement click dans ce cas, '.live()' attend que la bulle monte * tout * le chemin du document, '.delegate()' le capture beaucoup plus tôt au niveau de la table, c'est juste moins de travail qui se passe sur le navigateur avec '.delegate()' .... habituellement une différence de performance incommensurable. –
L'utilisation de Jquery 1.9.1 .on ne fonctionnait pas, c'est le cas de .live. – Ken