Chrom-file-upload-bug: auf change-Ereignis nicht ausgeführt werden zweimal mit der gleichen Datei

Arbeite ich auf diese html5-Datei-uploader-plugin, aber es hat einen Fehler auf Google Chrome, die ich nicht verstehen kann, und es zu beheben. Es funktioniert auf Firefox.

jsfiddle link

Das problem ist, dass Sie nicht hochladen der gleichen Datei zweimal von Ihrem desktop aus.

Wenn Sie zuerst klicken Sie auf wählen Sie, und drücken Sie OK zum hochladen einer Datei von Ihrem desktop, es sollte Warnung eine Nachricht, zum Beispiel".Taste-1' - hängt davon ab, welche upload-button, den Sie anklicken.

Dann, wenn Sie versuchen, uploaden die gleiche Datei wieder, diese code-Zeile wird nicht mehr ausgeführt,

$(".upload-file",object_parent).change(function() {

             ...
             ...

             alert($cm.selector);

});

Irgendeine Idee, was schief läuft in diesem plugin?

(function($){

    //Attach this new method to jQuery
    $.fn.extend({ 

        //This is where you write your plugin's name
        upload_file_html5: function(options) {

            //Set the default values, use comma to separate the settings, example:
            var defaults = {
                objectSuperparent:    '.media'
            }

            var options =  $.extend(defaults, options);
            var o = options;

            var $cm = this.click(function(e){

                //<a> button is the object in this case.
                var object = $(this);

                //Get other info from the element belong to this object group.
                var object_href = object.attr('href');
                var object_parent = object.parent();
                alert($cm.selector);

                //Trigger the click event on the element.
                //Due to security policies triggering click on the input type=file is not allowed/supported in some browsers and Opera is one of them.
                //$('input[type=file]').trigger('click'); //or:
                $(".upload-file",object_parent).click();

                return false;

            });

            //Trigger ajax post when ever the file is changed by the user.
            var $cm_2 = $(".upload-file").change(function(){

                //<input> is the object in this case.
                var object = $(this);

                var object_form = object.parent();
                var object_superparent = object.parents(o.objectSuperparent);
                var path_config = $($cm.selector,object_superparent).attr('href');
                var path_post = object_form.attr('action');

                alert($cm.selector);
                //alert(path_config);

                ....
                ....

            });

        }
    });

})(jQuery);

War es OK arbeitet auf Chrome aber gerade erst kürzlich gescheitert ist, wahrscheinlich Chrome aktualisiert und die neueste version auf meinem Rechner und das update verursacht den Fehler?

InformationsquelleAutor laukok | 2012-02-06
Schreibe einen Kommentar