Ошибка загрузки файла Chrome: событие изменения не запускается дважды с одним и тем же файлом

Я работаю над этим плагином для загрузки файлов html5, но у него есть ошибка в Google Chrome , которую я не могу понять и исправить. Он отлично работает в Firefox.

jsfiddle link

Проблема в том, что вы не можете загрузить один и тот же файл дважды со своего рабочего стола.

Когда вы впервые щелкаете, выбираете и нажимаете OK, чтобы загрузить файл со своего рабочего стола, должно появиться сообщение, например '.button-1' - в зависимости от того, какую кнопку загрузки вы нажали.

Затем, если вы снова попытаетесь загрузить тот же файл , эта строка кода больше не будет выполняться,

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

             ...
             ...

             alert($cm.selector);

});

Есть идеи, что пошло не так в этом плагине?

(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){

                //  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(){

                //  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);

Он работал нормально в Chrome, но недавно произошла ошибка. Возможно, Chrome обновил последнюю версию для моей машины, и это обновление вызывает ошибку?

24
задан laukok 6 February 2012 в 03:01
поделиться