我正在使用以下调用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>
感谢。
答案 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时,可以挂钩处理程序。