我正在尝试使用 jquery 显示一个元素,然后在显示该元素后提交一个表单。我有以下代码。
$("#form").submit(function(e) {
var self = this;
e.preventDefault();
$('#element').show({
complete: function() {
self.submit();
},
});
});
我遇到的问题是上面的代码在显示元素时添加了动画。我希望元素立即显示而不是缓和(即没有动画)。我尝试将持续时间选项设置为duration:1
,但这似乎有不良行为并且根本不显示元素。我也尝试将easing
选项设置为null
,但也没有任何乐趣。
我也试过下面的代码(因为它没有动画):
$("#form").submit(function(e) {
var self = this;
e.preventDefault();
$('#element').show();
self.submit();
});
但是这里的问题是在表单提交之前元素没有显示。
有什么想法可以在没有动画的情况下显示元素,一旦元素出现在屏幕上,就可以提交表单?
使用 jQuery 1.9.1
更新:
经过几个小时的拉扯,我遇到的问题似乎归结为 Safari 6.0.3 。似乎 Safari 在运行下一行脚本之前不会等待元素显示 - 所有其他浏览器都会这样做。即使只是设置一个很小的时间延迟似乎也可以解决这个问题。