我们有一个动画微调gif,我们用它来提炼用户提交表单后提交按钮。如果所有验证都通过了表单,我们通过jQuery的css()
方法分配背景,将背景图像,定位和颜色设置为一体。IE9提交时间CSS重新绘制
虽然在其他浏览器中仍然可以看到,但IE9并未显示提交的背景图片。
这种技术在以前的IE浏览器中运行良好,但似乎在IE9中已经崩溃,包括在旧的“浏览器模式”中。我不确定这是否是IE9中的一个错误,但它确实改变了行为,我不能相信IE7/8模式的行为正如预期的那样。
看起来好像IE可能决定在用户提交表单后不再进行重新绘制。如果是这种情况,我不确定我有办法解决它,但我想这不是真的。我们在Firefox中遇到了以前的这个技术问题,我们发现Firefox除了表单请求本身之外停止了所有http请求,这意味着如果背景图像不在缓存中,它将不起作用。正因为如此,我们已经采取了预先加载内存中的Image对象的微调器。
有趣的是,如果我手动调用从IE开发工具控制台更新按钮上的CSS的方法,它的工作原理就很好。只有当我们有实际的提交时,它才会变得不稳定,并且不能吸引到微调器中。还有趣的是,它确实从提交按钮中删除文本,这是效果的第二部分。
任何人有什么想法造成这/如何防止它?
这里的live()
d代码的简化版本,处理提交:
jQuery.fn.disableSubmit = function() {
this.find("input[type=submit]").each(function() {
$(this).css({"background": "url(/asdasdasd.gif) no-repeat 50% 50%"});
});
return this;
};
$("form").live("submit", function() {
var form = $(this);
form.disableSubmit();
return true;
});
要显示的任何代码?你是否在页面提交被调用之前或之后设置了CSS?您是使用提交按钮的默认行为还是从代码中手动调用submit()? – Rob 2011-05-10 22:12:27
没有代码,尽管我可以在今天晚些时候或明天晚些时候设计一些代码。在发送提交事件之后但在默认行为开始前,CSS会被设置。这是一个实际的提交(通过输入键在一个字段或点击提交按钮)而不是一个程序化的提交调用。 – thynctank 2011-05-11 15:29:03
尝试'<按钮类型=提交>'。它会表现出相同的行为吗? – 2011-05-11 15:47:17