J'ai quelques js et jquery à la page (dans un fichier externe), et tout fonctionne bien sur la pageload. Tous les effets fonctionnent bien. Le problème commence lorsque je soumets un formulaire via jquery et que j'obtiens plus de données js du serveur et que je les ajoute au corps via jquery. Les données elles-mêmes sont jquery et ajoutent du HTML à un élément spécifié. Maintenant, tout ce qui se trouve à l'intérieur de ce morceau de HTML ne déclenche pas le code jquery précédent. Je dois renvoyer le même code encore et encore avec chaque réponse ajax. Est-ce un problème sur le comportement normal de la langue.

Je suis un débutant.

Herz le code qui fonctionne bien avant, mais pas après:

$('form').submit( function() {
            switch( $(this).attr('name') )
            {
                case 'ajaxeditbookmarkform':
                alert( '1' );
                case 'ajaxbookmarkform':
                alert( '2' );
            }
            return false;
    });
0
Hamid Sarfraz 16 nov. 2011 à 15:37

3 réponses

Meilleure réponse

Essayez les événements en direct .....

Cette méthode permet d'attacher des gestionnaires d'événements délégués à l'élément de document d'une page, ce qui simplifie l'utilisation des gestionnaires d'événements lorsque du contenu est ajouté dynamiquement à une page. Pour plus d'informations, consultez la discussion sur les événements directs et délégués dans la méthode .on ().

2
Rupesh Pawar 16 nov. 2011 à 11:42

Tout d'abord. Oui, c'est un comportement normal. Ce que vous pourriez essayer de faire est d'utiliser la fonction .live de jQuery comme ceci:

$('form').live('submit', function() {
        switch( $(this).attr('name') )
        {
            case 'ajaxeditbookmarkform':
            alert( '1' );
            case 'ajaxbookmarkform':
            alert( '2' );
        }
        return false;
});
1
AndersDaniel 16 nov. 2011 à 11:43

Vous avez manqué la déclaration de pause au cas où ...

Vérifiez le violon

2
Akhil Thayyil 16 nov. 2011 à 11:41