WkWebView Cordova Ios onClick 事件未触发
WkWebView Cordova Ios onClick events not firing
几个小时以来我一直在追自己的尾巴。我读过同样的问题 here and here
我的 Cordova 应用基本上无法响应在我的 mac 上使用 ios iphone 模拟器的点击事件。它在 iphone 中也没有响应。执行 cordova run browser
时在浏览器中工作正常。我需要提一下,是的,所有内容都在 deviceready
中,所以这不是问题所在。唯一有效的是 href
。其他一切都没有反应。解决方法是什么?
html
<button id="pressOn">press me</button>
我试过了:
这个
$("#pressOn").on("touchend", openPage('login'));
这个
$("#pressOn").on("touchstart", openPage('login'));
这个
let touchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
$('#pressOn').on(touchEvent, openPage('login'));
None 有效...没有任何反应。
然而,当应用程序出现在模拟器上时(没有我 doing/touching 任何东西)
document.getElementById('pressOn').addEventListener('touchstart', alert('cheer up!'), false);
这不是事件侦听器的工作方式。实际上,你需要一个函数作为第二个参数,而不是函数调用:
$(selector).on( eventname , functionDef )
在您的情况下,您可以这样做:
$("#pressOn").on("touchend", function () { openPage('login') });
$("#pressOn").on("touchstart", function () { openPage('login') });
let touchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
$('#pressOn').on(touchEvent, function () { openPage('login') });
如果您使用像 openPage('login')
这样的函数调用,这将被立即解析和执行,而不是在事件流中。出于同样的原因,您的电话会立即触发警报:
document.getElementById('pressOn').addEventListener('touchstart', alert('cheer up!'), false);
您需要使用函数闭包来定义事件侦听器,如下所示:
document.getElementById('pressOn').addEventListener('touchstart', function() { alert('cheer up!') }, false);
几个小时以来我一直在追自己的尾巴。我读过同样的问题 here and here
我的 Cordova 应用基本上无法响应在我的 mac 上使用 ios iphone 模拟器的点击事件。它在 iphone 中也没有响应。执行 cordova run browser
时在浏览器中工作正常。我需要提一下,是的,所有内容都在 deviceready
中,所以这不是问题所在。唯一有效的是 href
。其他一切都没有反应。解决方法是什么?
html
<button id="pressOn">press me</button>
我试过了:
这个
$("#pressOn").on("touchend", openPage('login'));
这个
$("#pressOn").on("touchstart", openPage('login'));
这个
let touchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
$('#pressOn').on(touchEvent, openPage('login'));
None 有效...没有任何反应。
然而,当应用程序出现在模拟器上时(没有我 doing/touching 任何东西)
document.getElementById('pressOn').addEventListener('touchstart', alert('cheer up!'), false);
这不是事件侦听器的工作方式。实际上,你需要一个函数作为第二个参数,而不是函数调用:
$(selector).on( eventname , functionDef )
在您的情况下,您可以这样做:
$("#pressOn").on("touchend", function () { openPage('login') });
$("#pressOn").on("touchstart", function () { openPage('login') });
let touchEvent = 'ontouchstart' in window ? 'touchstart' : 'click';
$('#pressOn').on(touchEvent, function () { openPage('login') });
如果您使用像 openPage('login')
这样的函数调用,这将被立即解析和执行,而不是在事件流中。出于同样的原因,您的电话会立即触发警报:
document.getElementById('pressOn').addEventListener('touchstart', alert('cheer up!'), false);
您需要使用函数闭包来定义事件侦听器,如下所示:
document.getElementById('pressOn').addEventListener('touchstart', function() { alert('cheer up!') }, false);