11540 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

Voilà je pense ne pas avoir compris comment fonctionne un truc très important de jQuery.

Si j'ai un élément, exemple : $('.monTruc').click(function() {});

Bref, c'est très classique. Mais si monTruc viens à disparaitre et après un certain temps à ré-apparaitre. Alors l'évènement click n'est plus opérationnel.

Comment faire pour que cela devienne possible ? J'ai regardé du côté du live mais non. J'ai peut-être pas compris.

Merci pour votre aide et vos réponses.
Merci pour ta réponse et cet excellent article.
Par contre cela ne fonctionne toujours pas Smiley ohwell

Voici l'adresse du site, il faut effacer un bloc avec la croix en haut à droite, et le faire une deuxième fois, là, ça bloque.

Je continu de chercher et merci pour votre aide.

EDIT : ça fonctionne mais je suis obliger de faire comme live, c'est à dire de lier au document mes éléments que je veux lié à l'évènement. Eléments qui disparaissent et ré-apparaissent. Est-ce bien comme ceci qu'il faut faire ?

$(document).on('click', '.deleteImage', function()

Modifié par MagicCarpet (18 Jan 2013 - 17:49)
Oui, c'est bien cela.
A noter qu'à la place de document, tu peux mentionner un élément parent qui servira de "contexte".

NB : La page que tu as renseignée fait juste "loading..."

tm
Oups, je n'avais pas vu ta réponse, merci Smiley smile

Si elle fait loading c'est qu'il y'a un problème avec le localStorage, une propriété effacé pour un test peut-être ? En tout cas j'ai réglé ce problème depuis.

Si un tel problème ce produit, une fenêtre d'alerte s'affiche (grâce à un try/catch) et si tu click sur ok, le localStorage se vide, la page se rafraichie et ça fonctionne.

Le Drag'n'Drop fonctionne, juste mes titres h3 que je n'arrive plus à renommer depuis l'usage de jQuery UI (voir autre topic).
Modifié par MagicCarpet (21 Jan 2013 - 22:58)
Salut,

Sur chrome, il ne charge pas ton jQuery.
En cause, ton lien dropbox utilise https et ton appel googleapis utilise http...
Tu devrais simplement mettre :
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

tm
tm™ a écrit :
Salut,

Sur chrome, il ne charge pas ton jQuery.
En cause, ton lien dropbox utilise https et ton appel googleapis utilise http...
Tu devrais simplement mettre :
&lt;script src=&quot;//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js&quot;&gt;&lt;/script&gt;

tm


A oui, tu parlais de ce problème. Effectivement, mais si je fais ceci (j'ai mis à jour le lien), ça ne fonctionne toujours pas sous Chrome et sa ne fonctionne plus sous Safari. Smiley lol
Il semble que le problème soit plus profond. Je viens de basculer l'outil sur un serveur et effectivement, il ne m'affiche plus rien, juste le loader. Alors que dans Coda (IDE sous Mac), cela fonctionne correctement.

Comme aucunes données n'est présentes dans le localStorage, il va les chercher dans un fichier js qui à un nom de variable, qui elle-même contient du JSON minifié.

J'ai, une fois de plus, testé ce JSON avec JSON Lint pour être sûr et il est bien valide.

Est-ce que tu peux regarder de ton côté ? Je n'y comprends rien. Quand je clic sur le lien de l'erreur JavaScript, il ne reste que le nom de la variable sans aucunes données JSON.

Est-ce que le fait de l'avoir minifié peut rendre instable l'application ? Enfin, en même temps j'ai dé-minifié le JSON et enregistré à nouveau le fichier, mais rien ne se passe.

Le lien.

PS : il faut faire quoi pour importe une variable d'un fichier dans un autre ? Parce que le problème vient peut-être de là ? Si quelqu'un à la réponse...
Modifié par MagicCarpet (23 Jan 2013 - 19:26)
Voici les erreurs de la console de Chrome :

Uncaught SyntaxError: Unexpected end of input / data.js:1
Uncaught ReferenceError: dataGalleria is not defined / dataManagement.js:21
Oui oui mais je ne les comprends pas.
Quand je clic sur le lien de data.js j'ai :

var dataGalleria = 


Normalement la suite devrait-être [mon JSON]

Quand j'ouvre mon fichier, il est complet, et ça fonctionné très bien et encore maintenant d'ailleurs sous Coda. Mais dès que je bascule sur un serveur, plus rien...

Autres précision, ma variable n'est pas déclaré dans le fichier JS mais dans le code HTML, comme ceci :

<script type="text/javascript" src="../javascript/data.js"></script>


Est-ce un problème ?
Modifié par MagicCarpet (23 Jan 2013 - 19:53)
Désolé, je voulais éditer, pas ajouter un nouveau post.


EDIT : bon, apparemment j'ai trouvé le problème mais je ne le comprends pas pour l'instant.
Déjà, est-ce que tu peux regardé si ça fonctionne de ton coté ?
Le truc c'est que je récupère dans une variable, le contenu de ma variable dataGalleria. En fin de boucle, je la passe à undefined. Depuis que cette ligne est commenté, le site fonctionne. Je vais maintenant essayer de comprends pourquoi, ou du moins à quel moment je l'utilise.

PS : il faut vider le localStorage pour que ça fonctionne.
Modifié par MagicCarpet (23 Jan 2013 - 21:45)
Super, donc dernière question et donc dernier problème... Smiley smile

Depuis que j'utilise jQuery UI pour avoir le drag'n'drop, il m'est impossible de renommer mes champs h3. Quand j'avais mis l'attribut HTML5 draggable, j'avais eu le même problème mais ça fonctionné après ajout de CSS. Là, j'ai essayé tout un tas de truc et rien ne fonctionne.

Maintenant que le site fonctionne correctement, est-ce que quelqu'un aurait une idée ?

Tm ?

Smiley biggol

Merci à vous.
Je test ça.

Par contre je n'ai pas d'éléments draggable. Si je met un id sur une div, ça ne fonctionne pas.



Et je voulais te dire, sympa ta signature Smiley smile
Modifié par MagicCarpet (24 Jan 2013 - 21:45)