我已经定义了一些点击事件处理程序,如下所示:
$(document).ready(function () {
/*
* Since the "Start Upload" button is available, we don't need to worry about starting the
* upload when the user clicks "Update". But we need to make sure to display an error message
* if there are files in the uploader that have not been uploaded yet.
*/
$('#myAccount p.buttons input[alt="Update"]').click(function (event) {
// check if there are files in the uploader
if (uploader.files.length > 0) {
// if there are files that have not been uploaded yet, we need to show an error message
if (uploader.total.uploaded != uploader.files.length) {
// if the error message hasn't been created yet, create it
// else, it'll already be visible so we don't need to do anything
if ($('#upload_error').length == 0) {
$('<p id="upload_error">Error!</p>').insertAfter('#myAccount p.buttons input[alt="Cancel"]');
}
event.preventDefault(); // stop the click event
}
}
// continue click event as normal
});
});
......和......
// if the cancel button is clicked, then remove the files from the uploader
$('#myAccount p.buttons input[alt="Cancel"]').click(function (event) {
uploader.splice(0, uploader.files.length);
// continue click event as normal
});
两者在Firefox中运行良好,但在IE8和IE7(兼容模式)下,这些都不能一直运行。
更具体一点,这个“上传者”的东西与Plupload file uploader有关。基本上,我在表单中有这个上传器。表单提交正常,如果我根本不触摸上传器,上面的点击处理程序工作正常。
但是,在下面的例子中,上面的点击处理程序不起作用:我排队文件并让上传程序执行其操作,因此所有文件都已上传;现在我点击表单上的提交,没有任何反应,但我希望表单提交。无论何时我与上传者交互,点击事件处理程序都不起作用。
我希望我的评论能澄清我的意图。有关为什么这在IE 7/8中不起作用的任何想法?我究竟做错了什么? IE中的event.preventDefault()
处理方式不同吗?
感谢。
答案 0 :(得分:1)
试试这个:
if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; }
在使用之前测试preventDefault。
话虽如此,使用jQuery,您只需要return false;
并且它会为您处理一切
答案 1 :(得分:0)
我刚刚切换到Flash运行时。它现在似乎工作正常。