我有一个条件,我想杀死同一事件(touchstart
),同时按住按钮一段时间(对于iOS)。
$("#btn").on("touchstart", function(evt){
currBtn = $(this);
timeoutId = setTimeout(()=>{
changeOpacity(currBtn);
}, 1500);
return false;
});
答案 0 :(得分:0)
我提出了解决方案。您只需要将mousedown
事件的touchstart
事件更改为
function changeOpacity() {
$("#btn").css("opacity",0.3);
}
function addEvent() {
//add the event
$( "#btn" ).on("mousedown",onTouchStarts);
}
function removesEvent() {
//removes the event
$( "#btn" ).off("mousedown",onTouchStarts);
}
function onTouchStarts(evt){
console.log("mousedown");
currBtn = $(this);
timeoutId = setTimeout(()=>{
changeOpacity(currBtn);
removesEvent();
}, 1500);
return false;
}
addEvent();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Button</button>
答案 1 :(得分:-1)
使用preventDefault()
可抑制通常会触发的任何默认行为
evt.preventDefault();