按钮上的jQuery单击移动设备

时间:2016-01-07 07:43:56

标签: javascript jquery node.js button mobile

我有一个按钮

 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'

2 个答案:

答案 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个事件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);
  });
}