Pracuję nad tym wtyczką do przesyłania plików HTML5, ale ma błąd na Google Chrome, którego nie mogę zrozumieć i naprawić. Działa dobrze na Firefox.Błąd przesyłania pliku Chrome: po zmianie zdarzenie nie zostanie wykonane dwukrotnie z tym samym plikiem
Problemem jest to, że nie możnaprzesłać ten sam plik dwukrotnie z pulpitu.
Po pierwszym kliknięciu, wybraniu i naciśnięciu przycisku OK w celu przesłania pliku z pulpitu, powinien on ostrzec wiadomość, na przykład ".button-1" - w zależności od kliknięcia przycisku przesyłania.
Następnie jeśli spróbujesz przesłać ten sam plik znowu, ta linia kodu nie będą już wykonywane,
$(".upload-file",object_parent).change(function() {
...
...
alert($cm.selector);
});
Każdy pomysł co jest nie tak w tej wtyczki?
(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);
W Chrome działało OK, ale niedawno się nie udało, prawdopodobnie Chrome zaktualizował najnowszą wersję do mojego komputera, a ta aktualizacja powoduje błąd?
dzięki. Nie powinienem wtedy używać zdarzenia onchange?lub w inny sposób mogę to zrobić, aby móc przesłać ten sam plik? dzięki :-) – laukok
poniżej @ fundon's [odpowiedź] (https://stackoverflow.com/a/11280864/2024242) poniżej dla działającego rozwiązania –