我无法在Safari(以及ios设备)上使用可在Firefox,Chrome,Edge和IE上正常工作的东西。
在我的页面上有一个输入字段,它将输入发送回服务器,并在服务器创建此元素后将一个元素添加到dom(将其视为具有搜索结果的服务器端呈现的复杂组合框)。
这个添加到页面的dom元素包含像这样的可点击链接
<a href="" class="stampOption">Search result 1</a>
由于没有人知道页面上会出现多少这些链接,我在文档上注册了一个点击处理程序,如下所示:
$(document).on(“click touchstart tap”,function(evt){
if ($(evt.target).hasClass("stampOption")) {
some code...
});
虽然到目前为止我测试的所有浏览器都没问题,但在Safari中永远不会调用点击处理程序。
我尝试了几种替代方案,例如委托事件(在Safari / iOS上似乎也有问题),如下所示:
$(document).on("click touchstart tap", ".stampOption", function(evt) {
。我应用了光标:指针CSS技巧以及在SO和其他地方建议的onclick =“”技巧。
我还确保没有其他点击事件处理程序可以阻止冒泡等。
所以我还能尝试什么?
答案 0 :(得分:0)
没关系。问题是在同一页面上使用relatedTarget的模糊处理程序,在Safari上,它总是为空,因此一些if() - 语句在Safari上没有得出正确的结论,而在其他浏览器中一切都很好。 让我们说一些处理程序在Safari上吃掉了click事件。对浏览器不兼容性无知的典型案例......