jQuery单击处理程序代码无法在移动设备上运行

时间:2016-02-22 00:52:03

标签: javascript jquery wordpress mobile

我一直试图解决这个问题,并找到了多种解决方案"在这里(和其他地方),但似乎没有什么对我有用。我忽略了什么吗?

在桌面上一切正常,但在移动设备(特别是iOS Safari)上,点击事件代码不起作用。

**澄清....点击事件正在解雇....如果我投入警报,它会触发。但是DOM没有被操纵。同样,这仅适用于移动设备。 DOM操作代码在桌面上100%运行。

这是一个WordPress网站,这就是为什么我必须解决没有冲突模式的原因。这是我的代码......

HTML

brew info

的jQuery

<button id="add-ingredient" class="add-button" style="cursor: pointer;">Add</button>

2 个答案:

答案 0 :(得分:0)

如果删除event.preventDefault();,则应执行回调。

如果您想阻止默认行为,我建议您收听touchstart事件:

$('#add-ingredient').on('click touchstart', function(event) {
  console.log(event);
});

答案 1 :(得分:0)

好吧我发现我的jQuery代码中有一个错误,我使用的是错误的选择器。事实证明Chrome允许它通过其他浏览器(iOS Safari)没有的地方。我在这里发现了错误...

var lastIngredient = $(this).prev('[class^="ingredient').attr('class');

问题在于类^ =“成分.....选择器。注意我没有关闭[]。代码应该如下....

var lastIngredient = $(this).prev('[class^="ingredient"]').attr('class');

这样做可以使一切在移动设备上正常运行。