IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

UI Dialog is not a function


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut UI Dialog is not a function
    Bonjour,

    je n'arrive pas à faire fonctionner simplement le composant Dialog de JQuery UI.
    Je cherche juste à faire apparaitre une boite de dialogue "confirmer-annuler" sur le click d'un bouton.

    Je développe sous ZF, dans mon template j'inclus les différents fichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // inclusion de jquery
    $this->headScript()->prependFile('/js/jquery-1.3.2.js');
    // j'inclus les dépendances
    $this->headScript()->appendFile('/js/jquery-ui/ui.core.js');
    $this->headScript()->appendFile('/js/jquery-ui/ui.resizable.js');
    $this->headScript()->appendFile('/js/jquery-ui/ui.draggable.js');
    // inclusion de dialog
    $this->headScript()->appendFile('/js/jquery-ui/ui.dialog.js');
    // inclusion du CSS produit par ThemeRoller
    $this->headLink()->appendStylesheet('/css/jquery/jquery-ui-1.7.2.custom.css'); 
    // Mon fichier js perso
    $this->headScript()->appendFile('/js/actualites/buyarticle.js');
    ce qui me donne en <head>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script src="/js/jquery-1.3.2.js" type="text/javascript">
    </script>
    <script src="/js/jquery-ui/ui.core.js" type="text/javascript">
    </script>
    <script src="/js/jquery-ui/ui.resizable.js" type="text/javascript">
    </script>
    <script src="/js/jquery-ui/ui.draggable.js" type="text/javascript">
    </script>
    <script src="/js/jquery-ui/ui.dialog.js" type="text/javascript">
    </script>
    <script src="/js/actualites/buyarticle.js" type="text/javascript">
    Jusque la, tout m'a l'air correct, les appels sont dans le bon ordre.
    Dans le template, j'ai préparé la div
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="dialog" title="Acheter un article">
    	<p>Cet article vous coûtera 1 crédit</p>
    </div>
    Et enfin mon fichier buyarticle.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $(document).ready( function() {
     
    	$("input#buyarticle").click( function(e) {
    		e.preventDefault();
                    $("div#dialog").dialog('open');
            }
    J'occulte les options modal:true etc... juste pour tester.
    Et dans ma console Firebug, je me retrouve tout le temps avec la même erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $("div#dialog").dialog is not a function
    --- $("div#dialog").dialog('open');
    Par contre, si je mets dialog() hors du .click(), la boite apparait bien.

    Je ne comprends pas

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Par défaut
    J'ai pas encore bien regardé la fonction dialog dans l'UI, mais y'a qqchose qui me gene dans ton code: essaie $("#dialog").dialog au lieu de $("div#dialog").dialog

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    Citation Envoyé par nabab Voir le message
    J'ai pas encore bien regardé la fonction dialog dans l'UI, mais y'a qqchose qui me gene dans ton code: essaie $("#dialog").dialog au lieu de $("div#dialog").dialog
    Merci pour ton aide.

    J'avais déjà essayé, au cas où c'était le sélecteur CSS qui ne convenait pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).ready( function() {
    	$("#dialog").dialog();
    }
    => ça marche très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $(document).ready( function() {
     
    	$("input#buyarticle").click( function(e) {
    		e.preventDefault();	
    		$("#dialog").dialog();
              }  
    }
    => ça ne marche pas.


    Je comprends rien du tout

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $(document).ready( function() {
     
    	$("#buyarticle").click( function(e) {
    		$("#dialog").dialog();
    		e.preventDefault();	
             }  
    }
    ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    Citation Envoyé par nabab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $(document).ready( function() {
     
    	$("#buyarticle").click( function(e) {
    		$("#dialog").dialog();
    		e.preventDefault();	
             }  
    }
    ?
    Non plus.

    .dialog() is not a function :/
    Et la, le preventDefault ne fonctionne même pas.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    J'ai enfin trouvé !

    Il fallait d'abord initialiser la boite de dialogue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).ready( function() {
     
    	var popo = $("#dialog").dialog({ autoOpen: false });
    Puis dans le click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $("#buyarticle").click( function() {
       e.preventDefault();
       popo.dialog("open");
    }
    Et voila !

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Par défaut
    Je vois pas. Tu es sur que ton #buyarticle est bien dans le DOM ondocument.ready?

    Avais pas vu...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    Bon, en fait c'est dialog() qui ne fonctionne pas lorsque je le place dans un évènement click() , ou over().

    Si je le mets juste après $(document).ready() , la boite apparait très très bien.

    Je ne comprends vraiment pas pourquoi, c'est pas logique...

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Par défaut
    Et si tu executes directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("div#dialog").dialog('open');
    dans ta console javaScript ou Firebug?

  10. #10
    Invité de passage
    Inscrit en
    Novembre 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 1
    Par défaut Probleme semblable
    j'ai Jquery ui dialog qui ne fonctionne pas avec internet explorer 8

    lorqu'il s'agit de le faire apparaitre par un click!

    Or pourtant cela fonctionne avec Firefox.

    Que Faire SVP!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TypeError: $(..).dialog is not a function
    Par flamant dans le forum jQuery
    Réponses: 4
    Dernier message: 04/07/2015, 18h50
  2. is not a function
    Par Methode dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/01/2007, 22h25
  3. indexOf is not a function : pourquoi
    Par avogadro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2006, 17h50
  4. document.getElementByTagName is not a function ?
    Par krolineeee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/05/2006, 10h41
  5. window.document.forms[0].submit is not a function ?????
    Par michaelbob dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 04/01/2006, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo