jQuery on Button点击移动设备

jQuery on Button Click in mobile devices

本文关键字:移动 on Button jQuery      更新时间:2023-09-26

我有一个按钮

 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');
}
});

它在普通的网络浏览器上运行良好,但如果我在移动设备上打开网页,似乎永远不会调用点击事件,也不会发生任何事情。这是jQuery问题还是我遗漏了什么?

该代码正在node.js服务器上运行。

希望有人能帮忙。

更新:

我正在使用jade作为HTML的渲染引擎。我的按钮如下所示:

    div#updatebutton
    i.fa.fa-repeat.fa-lg
    |   'some description'

尝试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);
    }
}

您可以使用navigator对象检测用户设备。参考本

如果设备启用了touch,则使用touchstart/touchend事件或使用click事件进行desktopsclick事件也应在移动浏览器中工作,无法通过查看提供的代码猜出原因)

试试这个:

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);
  });
}