2010-10-04 8 views
1

Je dois ajouter un sélecteur de couleur à certains éléments d'entrée. J'utilisejQuery - Lance une fonction sur un élément

$(".element").colorPicker(){ ... } 

Cela fonctionne parfaitement. Le problème est que la page a un formulaire AJAX, qui - lorsqu'il est soumis - remplacera le formulaire précédent par un nouveau (nouveaux champs de saisie, etc.). Après cela, le colorPicker cesse de fonctionner.

Alors, comment puis-je utiliser cette fonction pour les entrées nouvellement créées?

Répondre

1

Il suffit de rattacher l'invocation dans le rappel ajax, car je ne crois pas qu'il existe un événement fiable que vous pouvez utiliser pour .live ou .delegate, sans révéler plus d'informations.

+0

donc j'ajouter les ' 'partie à nouveau dans la réponse ajax? – Alex

+0

Dans la ajax' fonction Success', '.colorPicker' invoquez de nouveau. –

0

Je crois que cela pourrait fonctionner:

$(".element").live('click focus', function() { 
    var $this = $(this); 
    if (!$this.data('hasColorPicker')) { 
     $this.colorPicker({ /* ... */ }).data('hasColorPicker', true); 
     $this.click(); // trigger the color picker - assuming it binds itself to the click event 
    } 
}); 
0

Qu'est-ce que Meder dit est bon, mais aussi, si vous créez les nouveaux éléments en copiant ceux qui existent déjà, envisagez d'utiliser $.clone(true) pour faire vos copies et il sera reporté les liaisons d'événements existantes aussi.

Questions connexes