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在回发后不起作用

回发后jquery datepicker不起作用

带有 URL 重写模块的 IIS 7.5 在回发时将 QueryString 参数加倍

jQuery填充的Gridview在回发时丢失数据

GridView 在回发或 onselectedindexchanged 后丢失数据表页眉和页脚

在回发时,如何向验证摘要添加错误消息?