gpt4 book ai didi

javascript - 有没有办法实现 "click"、 "double click"和 "click and hold"来处理同一元素?

转载 作者:行者123 更新时间:2023-12-02 23:10:05 32 4
gpt4 key购买 nike

我想实现类似在 Android 上点击 Instagram 中的帖子的功能(我认为在 iOS 上应该是相同的功能)。在 Instagram 中,如果有人点击照片,它会打开,双击,它会被喜欢,然后单击并按住会打开一个包含该图像和一些文本/按钮的弹出窗口。 Instagram 仅在 Native App 中执行此操作,而不是在他们的 PWA 中执行此操作,但我想在我的 PWA 中实现类似的功能。

[未尝试,因为我希望找到一种“官方”方式]:我认为,应该可以使用 mousedown mouseup 和自定义函数来计算秒数。

但这真的是“完美”的方式吗?

最佳答案

<强> Clik and hold

请引用以下帖子,如果单击并按住一段时间,它将打开菜单。 Click and Hold event listener with Javascript

双击

<p ondblclick="myFunction()">Double-click me</p> https://www.w3schools.com/jsref/event_ondblclick.asp

请参阅下面的示例,我添加了双击和 click & hold

 function doubleClickFunction(){
$('.hold_trigger').css({'border':'1px solid red'});
}
var timeout_id = 0,
hold_time = 1000,
hold_menu = $('.hold_menu'),
hold_trigger = $('.hold_trigger');

hold_menu.hide();

hold_trigger.mousedown(function() {
timeout_id = setTimeout(menu_toggle, hold_time);
}).bind('mouseup mouseleave', function() {
clearTimeout(timeout_id);
});

function menu_toggle() {
hold_menu.toggle();
}
ul.hold_menu {
list-style: none;
padding: 0;
margin: 0;
}

ul.hold_menu a, div.hold_trigger {
display: inline-block;
padding: 5px 15px;
border: 1px solid #ccc;
width: 300px;
}

ul.hold_menu a:link, ul.hold_menu a:visited {
color: black;
text-decoration: none;
}

ul.hold_menu a:active, ul.hold_menu a:hover {
background: #ff0;
text-decoration: none;
}

div.hold_trigger {
color: black;
cursor: pointer;
}

div.hold_trigger:hover {
background: #ccc;
}
 <div class="hold_trigger" ondblclick="doubleClickFunction()">Click and hold to toggle the menu</div>
<ul class="hold_menu">
<li><a href="#">Option 1</a></li>
<li><a href="#">Option 2</a></li>
<li><a href="#">Option 3</a></li>
</ul>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

关于javascript - 有没有办法实现 "click"、 "double click"和 "click and hold"来处理同一元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57408313/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com