Javascript 如何禁用<;a>;链接和恢复后?
我有一个类似于的页面 我曾经让程序区工作,而且它工作Javascript 如何禁用<;a>;链接和恢复后?,javascript,jquery,Javascript,Jquery,我有一个类似于的页面 我曾经让程序区工作,而且它工作 但问题是,我需要防止拖动后持续单击的a。所以我试着使用preventDefault(),实际上它是有效的!但是我如何恢复链接,以便用户在没有拖动时可以单击它呢?它的事件可能是什么?您可以尝试使用以下代码: var down = false; var drag = false; $('...').mousedown(function() { down = true; }).mouseup(function() { down = dr
但问题是,我需要防止拖动后持续单击的
a
。所以我试着使用preventDefault()
,实际上它是有效的!但是我如何恢复链接,以便用户在没有拖动时可以单击它呢?它的事件可能是什么?您可以尝试使用以下代码:
var down = false;
var drag = false;
$('...').mousedown(function() {
down = true;
}).mouseup(function() {
down = drag = false;
}).mousemove(function() {
if (down) {
drag = true;
}
}).on('click', 'a', function(e) {
if (drag) {
e.preventDefault();
}
});
改为使用类似于setTimeout的内容
var golocation = function() {
var href = $(this)[0].dataset.href;
window.location = href;
}
var start_time;
$('a')
.on('mousedown', function(e) {
start_time = new Date().getTime();
})
.on('mouseup', function(e) {
var now = new Date().getTime();
if (now - start_time < 100) {
golocation.call(this);
};
});
var golocation=function(){
var href=$(此)[0].dataset.href;
window.location=href;
}
var启动时间;
$('a')
.on('mousedown',函数(e){
开始时间=新日期().getTime();
})
.on('mouseup',函数(e){
var now=new Date().getTime();
如果(现在-开始时间<100){
打电话给(这个);
};
});
您可以使用超时?您可以添加一个标志,当拖动时设置为true,当拖动完成时设置为false,当falg为true时,您可以在单击事件中调用preventDefault。将dragstart
上的全局布尔值设置为true
并将dragend
上的全局布尔值设置为false
。单击链接时,检查布尔值是否为真,以确定是否要阻止单击。dragstart
和dragend
不起作用。