Safari没有激活jquery提交动作的css规则
我在网站上的表格上提交了脚本列表。
$(".movieSearch").submit(function() { $("body").addClass("tmdbsearching"); });
您可以看到,此脚本将在主体上设置一个类,然后将激活css重叠规则。
div.overlay { position: fixed; z-index: 900; top: 0px; left: 0px; width: 100%; height: 100%; background-color: rgba(0,0,0,0.4); opacity: 0; visibility: hidden; -webkit-transition: opacity 0.5s cubic-bezier(0.89,.005,.545,1); -moz-transition: opacity 0.5s cubic-bezier(0.89,.005,.545,1); -ms-transition: opacity 0.5s cubic-bezier(0.89,.005,.545,1); -o-transition: opacity 0.5s cubic-bezier(0.89,.005,.545,1); transition: opacity 0.5s cubic-bezier(0.89,.005,.545,1); } body.tmdbsearching div.overlay { z-index: 900; opacity: 1 !important; visibility: visible !important; }
但这项工作Safari不会显示叠加层。 它可以工作的所有其他浏览器。我可以在Safari上设置类的主体,但不会激活css规则。
我做了一个测试按钮,测试叠加层。 这很好。
$('.testbutton').click(function() { $("body").toggleClass("tmdbsearching"); });
该网站的链接是: http : //moovee.dk/beta/index.php/tilfoj-film
然后你可以看到实际行动。
您正在提交函数中添加类,并将表单触发器导航提交到另一个页面。 在这种情况下,浏览器可以选择也可以不选择更新显示。
您可以按如下方式解决此问题:
- 取消提交function
- 将类添加到正文中
- 使用
setTimeout()
手动触发提交事件
$(".movieSearch").submit(function(e) { e.preventDefault(); $("body").addClass("tmdbsearching"); var that = this; setTimeout(function() { that.submit(); }, 1); });
在上面的示例中,提交处理程序取消事件并将控制返回给浏览器,允许它更新显示。