jQuery方法在Safari 6中不起作用

Mik*_*e B 7 safari jquery safari6

拉出我的头发.简单的jQuery方法在Safari 6中不起作用.

以下代码块适用于我测试过的除Safari 6以外的所有其他浏览器.它在Safari 5及更早版本中运行良好,在Firefox中运行良好,在IE中运行良好.它也适用于Chrome.

警报会在Safari 6中弹出,因此该函数仍会触发,但其他3种方法都没有任何反应.

-----更新-----在几台机器上进一步测试后...我发现它只能在Mac OSX 10.8的Safari 6中无法运行.该代码在OSX 10.7中的相同版本的Safari中工作正常.--------------------

我正在运行jQuery 1.8.3.我的页面验证为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 -->
Run Code Online (Sandbox Code Playgroud)

CSS:

.loadingBar {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$(function(){
    // Submit Buttons
    $('#fileUploadSubmit').click(function()
    {
        $('#fileUploadSubmit').attr('value', 'Uploading');
        $('#fileUploadSubmit').fadeTo('fast',0.6);
        $('#fileUploadLoadingBar').fadeIn('fast');
        alert('Finished');
    });
});
Run Code Online (Sandbox Code Playgroud)

kev*_*eon 1

我可能是错的,但我认为你的问题是表单在你的 javascript 运行之前提交。您可能需要使用 PreventDefault 来防止这种情况发生。您还可以将按钮从提交按钮更改为 type="button",这也会有所帮助。哎呀...快速编辑...我还将您的警报放入回调中,以便它在 fadeIN 发生后运行...您可以保留它或更改它。

$(function(){
    // Submit Buttons
    $('#fileUploadSubmit').click(function(e)
    {
        e.preventDefault();
        $('#fileUploadSubmit').attr('value', 'Uploading');
        $('#fileUploadSubmit').fadeTo('fast',0.6);
        $('#fileUploadLoadingBar').fadeIn('fast', function() {
            alert('Finished');
        });

    });
});
Run Code Online (Sandbox Code Playgroud)