如果鼠标没有按住一定的毫秒数,我想运行一个函数。
以下只是我想如何尝试代码但不认为这会起作用的一个例子。有人可以帮忙完成这个吗?由于Android中的错误,我无法使用“点击”事件。
var timeheld = 0;
var holdStart, holdEnd, theElement;
// show modal on click
$(document).on('mousedown', '.button', function(e) {
theElement = $(this);
timeHeld = 0;
holdStart = Date.now();
}).mouseup(function() {
timeHeld = Date.now() - holdStart;
if(timeHeld < 200) {
process_click(theElement);
}
});
答案 0 :(得分:1)
我认为您的概念通常是正确的,只有一个例外:如果您委托mousedown
事件 - 无论出于何种原因,您也希望对mouseup
事件也这样做。< / p>
$(document).on('mousedown', '.button', function() {
$(this).data('start', Date.now());
}).on('mouseup', '.button', function() {
var df = Date.now() - $(this).data('start');
console.log( df );
df >= 200 || process_click( this );
});
$(document).on('mousedown', '.button', function() {
$(this).data('start', Date.now());
}).on('mouseup', '.button', function() {
var df = Date.now() - $(this).data('start');
console.log( df );
df >= 200 || process_click( this );
});
function process_click( elm ) {
console.log( elm );
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<BUTTON class="button">BUTTON 1</BUTTON><br>
<BUTTON class="button">BUTTON 2</BUTTON><br>
<BUTTON class="button">BUTTON 3</BUTTON><br>
&#13;