2017-06-21 65 views
0

不知道如何制定一個問題,需要將某種類型的事件分配給某個變量,然後使用它。例如:JS。將事件屬性類型分配給變量

mx = ('ontouchstart' in document.documentElement) ? event.changedTouches[0].pageX : event.pageX; 

然後:

function fn(e) { 
    return mx - elem1.getBoundingClientRect().left; 
} 

e -event對象進入mx,並返回所分配的早期事件類型(使得мх要麼e.changedTouches[0].pageXe.pageX)。

有沒有可能這樣做? (否則,必須檢查ontouchstart每次px鼠標移動的支持...)

+0

您如何定義兩個方法並使用正確的方法? – epascarello

回答

1

如果您不想在每次迭代時執行if檢查,而不是僅使用所需版本定義函數。

var fn = (function() { 
    if ('ontouchstart' in document.documentElement){ 
    return function(event){ 
     return event.changedTouches[0].pageX - elem1.getBoundingClientRect().left 
    } 
    } else { 
    return function(event){ 
     return event.pageX - elem1.getBoundingClientRect().left 
    } 
    } 
}()); 
+0

謝謝!這很好! iPhone/Safari上的 – CodeGust

+0

我得到錯誤:TypeError:undefined不是一個對象(評估'event.changedTouches')---這裏:return function(event){return event.changedTouches [0] .XX – CodeGust

+0

我試着分配e打電話給fn之前的事件 - 改變noghing ...你能建議你在這裏錯了嗎? – CodeGust