2016-01-07 21 views
0

我有一個按鈕jQuery的上按鈕單擊移動設備

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' 
+0

你能提供一個撥弄它無法在移動工作?你可以使用'chrome:// inspect'來調試。 – Rayon

+0

我真的不知道如何創建一個例子小提琴,因爲'$ .get('any url',function(data){}'是一個ajax調用在服務器和客戶端之間....這可能是真正的問題,是阿賈克斯在這樣的移動設備上工作?@RayonDabre – dnks23

回答

0

嘗試使用touchstart事件。

UPDATE

請檢查。

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

「點擊touchstart」事件不起作用 – dnks23

+0

確定請嘗試更新。如果不工作,檢查你是否在調試控制檯中出現錯誤 –

+0

這不起作用導致整個頁面是一個d3圖形如果我添加'var myButton = ...'整個圖形崩潰了,請問有沒有其他解決方案? – dnks23

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