Wyciągając moje włosy. Proste metody jQuery nie działają w Safari 6.Metody jQuery nie działają w Safari 6
Poniższy blok kodu działa we wszystkich innych przeglądarkach, które przetestowałem z wyjątkiem Safari 6. Działa dobrze w Safari 5 i starszych, dobrze w Firefoksie, dobrze w IE. Działa również dobrze w Chrome.
Alert jest wyskakujący w Safari 6, więc funkcja nadal jest uruchamiana, ale nic nie dzieje się z żadną z pozostałych 3 metod.
----- AKTUALIZACJA ----- Po dalszych testach na kilku komputerach ... Odkryłem, że działa tylko w Safari 6 w Mac OSX 10.8. Kod działa poprawnie w tej samej wersji Safari w OSX 10.7. --------------------
Używam jQuery 1.8.3. a moja strona sprawdza się jako HTML5.
HTML:
<div id="fileUploadFormContainer">
<form id="fileUploadForm" action="/upload/do_upload/<?=$row->project_id?>" method="post" enctype="multipart/form-data" >
<fieldset>
<label for="userfile">Attach a file</label>
<input type="file" name="userfile" id="userfile" /><br />
<input type="submit" id="fileUploadSubmit" value="Upload file" />
<img class="loadingBar" id="fileUploadLoadingBar" src="/images/indicators/ajax-loader.gif" alt="" />
</fieldset>
</form>
</div><!-- end fileUploadFormContainer -->
CSS:
.loadingBar {
display: none;
}
JavaScript:
$(function(){
// Submit Buttons
$('#fileUploadSubmit').click(function()
{
$('#fileUploadSubmit').attr('value', 'Uploading');
$('#fileUploadSubmit').fadeTo('fast',0.6);
$('#fileUploadLoadingBar').fadeIn('fast');
alert('Finished');
});
});
Czy pojawił się błąd? –
Jedyną dziwną rzeczą, jaką widzę w tych wierszach, jest '$ (...). Attr ('value', 'Uploading');'. Zwykle używałbyś '$ (...). Val ('Uploading');' (lub mógłbyś użyć 'prop'). Ale założę się, że 'attr' tak działa i, w każdym razie, to nie wyjaśnia zaników ... –
Miło jest zobaczyć ** zadane pytanie ** od nowego członka SO. Niezłe! –