Fancybox(v1.3.1)showActivity()在Chrome / Safari中显示不一致

时间:2012-07-10 14:53:35

标签: jquery google-chrome safari webkit fancybox

我正在使用以下调用fancybox:$ .fancybox.showActivity();显示加载动画。它适用于Firefox和IE。但是,Chrome和Safari非常不一致。因此,为了测试调用是否存在问题,我创建了一个按钮并通过JS函数附加调用。当我点击按钮(以验证呼叫是否自己工作),然后按下实际上我正在编码的按钮,然后它就可以了。但是如果我没有按下(验证测试)按钮,只按下实际的代码按钮,那么它就不显示了。我也可以在调试器中看到div。对于这种不一致的功能,是否有任何理由浮现在脑海中?

代码段:

验证测试按钮:

<button type="button" onclick="checkFancybox();">Check Fancybox</button>            
<script>
function checkFancybox(){
$.fancybox.showActivity();
alert("Fancybox call completed.");
}
</script>

实际编码按钮:

<form id="video-upload-form" action="{url}?nexturl={nextUrl}" 
      method="post" enctype="multipart/form-data" >
<input name="file" type="file"/>
<input name="token" type="hidden" value=""/>
<input value="Upload Video File" type="button" name="submitVideoUpload" 
       onClick="checkFile()" class="button" />
</form>
<script> 
 function checkFile(){
    //RegEx for valid file name and extensions.
    var fileVal = document.forms["video-upload-form"].elements['file'].value;

    if(fileVal != ""){
      //notify user of activity
      $.fancybox.showActivity();
      document.getElementById('vintro-upload-form').submit();
    }else{alert('Please select the Video file.');}
 }
</script>

感谢。

1 个答案:

答案 0 :(得分:0)

只是为了正确...如果你在HTML中挂钩js函数你最好使用

<input value="Upload Video File" type="button" name="submitVideoUpload" 
   onClick="javascript:checkFile();" class="button" />

“javascript:;”很重要这样你可以确定它适用于x-browser。

除此之外,您可能想以这种方式尝试:

<input id="mybutton" value="Upload Video File" type="button" name="submitVideoUpload" class="button" />
<script>
// Once the DOM is ready
$(function(){
    // bind your function
    $("#mybutton").click(function(){ checkFile(); });
});

// define your function
function checkFile(){
    //RegEx for valid file name and extensions.
    var fileVal = document.forms["video-upload-form"].elements['file'].value;

    if(fileVal != ""){
        //notify user of activity
        $.fancybox.showActivity();
        document.getElementById('vintro-upload-form').submit();
    }
    else { alert('Please select the Video file.'); }
}
</script>

在DOM加载后绑定点击处理程序。这样,当处理程序实际找到要将其挂钩的HTML时,可以挂钩处理程序。