Jom*_*Jom 6 extjs user-experience double-click event-handling extjs4.1
我有一个树面板,每个节点我都有单击和双击事件.但是,当我双击时,它也会触发单击事件.那么如何防止双击时触发单击事件?
一般采用两种单单击和双击事件被认为是不好的做法,并高度气馁.
但是,如果您仍然想要这样做,那么能够区分单击和双击的唯一方法是通过测量点击之间的时间来人为地添加这种区别.
我们的想法是,您不要立即执行单击操作,而是等待第二次单击.如果第二次点击很快,则会触发双击操作.否则,您的单击操作会在延迟后触发.
您的代码将类似于:
var singleClickTask = new Ext.util.DelayedTask(singleClickAction), // our delayed task for single click
singleClickDelay = 100; // delay in milliseconds
function onClick() {
singleClickTask.delay(singleClickDelay);
}
function onDblClick() {
// double click detected - trigger double click action
doubleClickAction();
// and don't forget to cancel single click task!
singleClickTask.cancel();
}
function singleClickAction() {
// something useful...
}
function doubleClickAction() {
// something useful...
}
// setting event handlers on an Element
elem.on('click', onClick);
elem.on('dblclick', onDblClick);
Run Code Online (Sandbox Code Playgroud)
明显的缺点是:
我不知道任何更好的解决方案,而且,我不鼓励您同时使用单击和双击,这通常会导致用户体验受损.
归档时间: |
|
查看次数: |
8145 次 |
最近记录: |