iOS Safari 在回发启动后不执行 .html() jQuery (vb.net)
Posted
技术标签:
【中文标题】iOS Safari 在回发启动后不执行 .html() jQuery (vb.net)【英文标题】:iOS Safari not executing .html() jQuery after postback initiated (vb.net) 【发布时间】:2016-01-28 18:51:20 【问题描述】:我有一个标记为runat="server"
的锚标记,并附加了一个句柄save.ServerClick
事件。我正在尝试在使用 jQuery 单击标记后修改标记的内容,但它不应干扰回发到服务器端句柄。
ios 版本的 Safari(特别是我在 iOS 8.4 上测试)会正确触发回发,但点击按钮后锚标记的 html 内容不会更新。在 iOS 版本的 Google Chrome 或我尝试过的任何桌面浏览器中不存在此问题。
有趣的是,我在.click()
jQuery 处理程序中放置了一个alert()
,Safari 确实显示了警告框;它似乎根本没有使用.html()
方法更新锚标记(如果加载新页面/提交表单,可能不会触发重排?),就像在 Chrome 和桌面浏览器中发生的那样。有没有办法让它更新锚标签?
Html 锚标记:
<a id="save" runat="server" clientidmode="Static">Save Changes</a>
jQuery:
$("a#save").click(function ()
$(this).html("Saving... <i class='fa fa-circle-o-notch fa-spin'></i>");
);
【问题讨论】:
【参考方案1】:似乎 jQuery.click() 在 iOS 上运行有些问题,但有一些方法可以解决这个问题,您可以尝试任一方法
将 .click() 更改为 .on(event, selector, function)
正如SO answer by Jason 中发布的那样,更改附加函数的方式可以工作
或
在元素的style/css中添加cursor: pointer
正如在其他 SO answer by Ravi Gadag 中发布的那样,添加此规则也可以为您工作
希望对你有帮助
【讨论】:
正如我在问题中所说,点击事件 确实 触发。我添加了一个警报,显示效果很好。它只是 .html() 在 iOS 上的 Safari 中的站点上似乎没有更新。 .html() 在 iOS 上的 Chrome 中按预期工作。以上是关于iOS Safari 在回发启动后不执行 .html() jQuery (vb.net)的主要内容,如果未能解决你的问题,请参考以下文章
jquery datepicker ms ajax updatepanel在回发后不起作用
带有 URL 重写模块的 IIS 7.5 在回发时将 QueryString 参数加倍