Estoy trabajando en este complemento de carga de archivos html5 pero tiene un error en Google Chrome que no puedo entender y solucionar. Funciona bien en Firefox.Error de carga de archivos Chrome: el evento de cambio no se ejecutará dos veces con el mismo archivo
El problema es que no se puede cargar el mismo archivo dos veces desde su escritorio.
Cuando hace clic por primera vez, selecciona y presiona OK para cargar un archivo desde su escritorio, debe alertar a un mensaje, por ejemplo '.button-1' - depende del botón de carga en el que haga clic.
Entonces, si intenta cargar el mismo archivo de nuevo, esta línea de código no se ejecutará más,
$(".upload-file",object_parent).change(function() {
...
...
alert($cm.selector);
});
Cualquier idea de lo que va mal en este 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);
que estaba trabajando bien en Chrome, pero sólo fallaron recientemente, probablemente Chrome ha actualizado una versión más reciente de mi máquina y esta actualización hace que el error?
gracias. No debería usar el evento onchange entonces?o de cualquier manera puedo hacerlo para poder subir el mismo archivo? gracias :-) – laukok
ver @ fundon's [respuesta] (https://stackoverflow.com/a/11280864/2024242) a continuación para una solución de trabajo –