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 :

Différence conversion live to on [Plugin]


Sujet :

jQuery

  1. #1
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut Différence conversion live to on
    J'ai mis en pièce jointe un projet de MultiFile-Upload à partir de ce projet github

    En ouvrant le projet, la page default.aspx est l'originale et test.aspx la page où j'essaie de mettre les derniers fichiers jquery, car il travaille avec plusieurs versions de ces fichiers, donc pas très propres à mon goût.

    Le problème est que dans /FileUpload/js/jquery.fileupload-ui.js
    j'ai
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    _initEventHandlers: function () {
                $.blueimp.fileupload.prototype._initEventHandlers.call(this);
                var filesList = this.element.find('.files'),
                    eventData = { fileupload: this };
                filesList.find('.start button')
                    .live(
                        'click.' + this.options.namespace,
                        eventData,
                        this._startHandler
                    );
                filesList.find('.cancel button')
                    .live(
                        'click.' + this.options.namespace,
                        eventData,
                        this._cancelHandler
                    );
                filesList.find('.delete button')
                    .live(
                        'click.' + this.options.namespace,
                        eventData,
                        this._deleteHandler
                    );
                filesList.find('.failupload button')
                    .live(
                        'click.' + this.options.namespace,
                        eventData,
                        this._deleteHandler
                    );
            }
    live existe car utilise jquery-1.7.2.min.js
    donc dans les doc officiel, je duplique fichier dans /js/jquery.fileupload-ui.js
    et remplace me code précédent par
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    _initEventHandlers: function () {
                $.blueimp.fileupload.prototype._initEventHandlers.call(this);
                var filesList = this.element.find('.files');
                var eventData = { fileupload: this };
                filesList.on('click.' + this.options.namespace, ".start button", eventData, this._startHandler);
                filesList.on('click.' + this.options.namespace, ".cancel button", eventData, this._cancelHandler);
                filesList.on('click.' + this.options.namespace, ".delete button", eventData, this._deleteHandler);
                filesList.on('click.' + this.options.namespace, ".failupload button", eventData, this._deleteHandler);
            }

    Mais j'ai une erreur (uniquement sur la suppression de fichier) qui me parle de parseerror.
    L'erreur vient de
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    destroy: function (e, data) {
                    var that = $(this).data('fileupload');
                    if (data.url) {
                        $.ajax(data)
                            .fail(function (jqXHR, textStatus) {
                                alert("Deletion request error:" + "\n" + textStatus + "\n" + data.url + "\n" + data.type);
                            })
                            .success(function () {
                                RemoveTxtFileName(data.url);
                                that._adjustMaxNumberOfFiles(1);
                                $(this).fadeOut(function () {
                                    $(this).remove();
                                });
                            });
                    } else {
                        data.context.fadeOut(function () {
                            $(this).remove();
                        });
                    }
                }
    qui est un peu plus haut dans le fichier
    l'appel $.ajax(data) fait un fail ... alors que sur l'ASHX, tout se passe bien, mon fichier est vraiment supprimé.

    La seule différence entre les 2 versions est dans data.context.selector qui est vide dans ma modif alors que dans la version d'origine on a selector = ".closest(.template-download)"

    Je ne voit pas d'autres différence, mais je ne comprend pas pourquoi.
    Quelqu'un pourrai m'aider à comprendre la différence entre live et on en jquerry
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    L'équivalent de : filesList.find( '.start button' ).live( 'click.' + this.options.namespace, eventData, this._startHandler ); est : $( "body" ).on( 'click.' + this.options.namespace, filesList.find( '.start button' ), eventData, this._startHandler );.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    J'ai essayé ta méthode... Je suis un peu perplexe ... j'explique.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     _initEventHandlers: function () {
                $.blueimp.fileupload.prototype._initEventHandlers.call(this);
                var filesList = this.element.find('.files');
                var eventData = { fileupload: this };
     
                $("body").on('click.' + this.options.namespace, filesList.find('.start button'), eventData, this._startHandler);
                $("body").on('click.' + this.options.namespace, filesList.find('.cancel button'), eventData, this._cancelHandler);
                $("body").on('click.' + this.options.namespace, filesList.find('.delete button'), eventData, this._deleteHandler);
                $("body").on('click.' + this.options.namespace, filesList.find('.failupload button'), eventData, this._deleteHandler);
     
                //filesList.on('click.' + this.options.namespace, ".start button", eventData, this._startHandler);
                //filesList.on('click.' + this.options.namespace, ".cancel button", eventData, this._cancelHandler);
                //filesList.on('click.' + this.options.namespace, ".delete button", eventData, this._deleteHandler);
                //filesList.on('click.' + this.options.namespace, ".failupload button", eventData, this._deleteHandler);
            }
    Je me prend une erreur dans jquery.min.js d'un objet non reconnu, et le code marche plus.

    Si je ne mets que la ligne du delete ... j'ai toujours cette erreur d'objet non reconnu, mais le code marche ...

    sur http://api.jquery.com/live/
    $( selector ).live( events, data, handler ); // jQuery 1.3+
    $( document ).delegate( selector, events, data, handler ); // jQuery 1.4.+
    $( document ).on( events, selector, data, handler ); // jQuery 1.7+
    Or filesList.find('.failupload button') n'est pas un selector ...
    Mais merci de l'idée ...

    J'ai essayé ça aussi, mais j'ai exactement le même problème
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    _initEventHandlers: function () {
                $.blueimp.fileupload.prototype._initEventHandlers.call(this);
                var filesList = this.element.find('.files');
                var eventData = { fileupload: this };
     
                $(document).on('click.' + this.options.namespace, ".files .start button", eventData, this._startHandler);
                $(document).on('click.' + this.options.namespace, ".files .cancel button", eventData, this._cancelHandler);
                $(document).on('click.' + this.options.namespace, ".files .delete button", eventData, this._deleteHandler);
                $(document).on('click.' + this.options.namespace, ".files .failupload button", eventData, this._deleteHandler);
            }


    Fait bizarre je reviens sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
        <script type="text/javascript" src="/FileUpload/js/jQuery/1.9.0/jquery-ui.js"></script>
    et ça marche nickel ... sauf sur IE10 avec le chargement de plusieurs fichiers... et si je mets la version jquery.ui 10.3 et jquery 1.9.1 j n'ai pas de Widget ... je craque

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Versions obsolètes !

    • "http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"
    • "http://code.jquery.com/ui/1.10.3/jquery-ui.js"


    CSS : "http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    Le problème est autre ... je clos ce sujet pour préciser ma demande car ne correspond plus vraiment au thème de départ

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

Discussions similaires

  1. Différence de 2 datetime et conversion
    Par flagodzki dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/08/2011, 13h22
  2. [HTML 4.0] Différence d'interlignage <br> Dreamweaver entre vue "Split" et "Live view"
    Par HappyBlueFrog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/06/2011, 16h58
  3. Réponses: 4
    Dernier message: 14/04/2009, 11h25
  4. [Live CD] 3.8 Go et 700 Mo quelle différence ?
    Par aityahia dans le forum Ubuntu
    Réponses: 3
    Dernier message: 11/09/2008, 00h09
  5. Différence entre le DVD et le CD live
    Par Gaiiak dans le forum Bubuntu
    Réponses: 3
    Dernier message: 08/09/2008, 12h20

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