我有一个按钮
d3.select("#updatebutton").on("click", function(e) {
try{
$.get('any url', function(data) {
alert('Any Alert Message');
window.location.href = window.location.href;
});
}
catch (e) {
alert('Error: ' + e);
}
}
我想在按钮点击事件上执行某些操作:
app.get('any url', function(req, res, next) {
try{
anyfunction();
}
catch(e) {
alert('Error');
}
});
它在普通的网络浏览器上工作正常,但是如果我在移动设备上打开我的网页,似乎从未调用click事件并且没有任何反应。这是一个jQuery问题还是我错过了什么?
代码正在node.js服务器上运行。
希望任何人都可以提供帮助。
更新:
我正在使用jade作为HTML的渲染引擎。我的按钮如下所示:
div#updatebutton
i.fa.fa-repeat.fa-lg
| 'some description'
答案 0 :(得分:0)
尝试touchstart
事件。
<强>更新强>
请检查。
var myButton = d3.select("#updatebutton");
myButton.on("touchstart", onDown);
function onDown() {
alert("Work");
try{
$.get('any url', function(data) {
alert('Any Alert Message');
window.location.href = window.location.href;
});
}
catch (e) {
alert('Error: ' + e);
}
}
答案 1 :(得分:0)
您可以使用
navigator
对象检测用户设备。请参阅this
如果设备已启用touch
,则使用touchstart
/ touchend
个事件或使用click
个事件desktops
(click
个事件应该有效移动浏览器也无法通过提供的代码来猜测原因
试试这个:
function is_touch_device() {
return (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
}
var myButton = d3.select("#updatebutton");
var myEvent = is_touch_device() ? 'touchend' : 'click';
myButton.on(myEvent, onDown);
function onDown() {
$.get('any url', function(data) {
alert('Any Alert Message');
window.location.reload(); //better way to reload the page
}).fail(function(error) {
console.log(error);
});
}