我有一个页面,其中包含网络状态的事件侦听器.当网络"离线"时,我想禁用任何跨域链接以进入离线模式.我试图使用.preventDefault(),但是当应用程序重新联机时,我需要重新启用链接.
事件听众
//check network status
if(!navigator.onLine) {
offlineLinks(); //Offline mode function
}
//add event listeners for network status
window.addEventListener('offline', function(e) {
offlineLinks(); //Offline mode function
}, false);
window.addEventListener('online', function(e) {
//need to re-enable links/Online mode
}, false);
window.addEventListener('error', function(e) {
alert('Error fetching manifest: there is a good chance we are offline.');
offlineLinks(); //Offline mode function
});
Run Code Online (Sandbox Code Playgroud)
"去链接"功能
function offlineLinks() {
$('a[href^="http"]').click(function(e) {
e.preventDefault();
$('#offline-dialog').dialog({
modal: true,
buttons: {
Ok: function() {
$(this).dialog('close');
}
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种可扩展的解决方案,如果页面上有大量链接,则不会导致延迟.是否有一个简单的解决方案来扭转 …
这似乎是一个荒谬的简单问题,但似乎更难......
我想阻止对中键的默认处理。我创建了一个的jsfiddle并加送stopPropagation,stopImmediatePropagation,preventDefault和return false-就像这样:
$(document).on("mousedown", "a", function(e)
{
console.log("\nprevent mousedown...");
e.stopPropagation();
e.stopImmediatePropagation();
e.preventDefault();
console.log("...mousedown prevented");
return false;
});
Run Code Online (Sandbox Code Playgroud)
但是中键被触发。顺便说一句,当我松开中间按钮时它会被触发。这是 JSFiddle:http : //jsfiddle.net/Gq4p9/4/
在 Chrome 29、Firefox 23 和 IE11 上测试。
我希望你们中的某个人能找出为什么这个脚本不会阻止默认处理。
我正在使用 FancyBox --> jQuery 插件来显示图片库。

这是我正在尝试使用的 JSFIDDLE:--> http://jsfiddle.net/CWaHL/238/
我希望用户能够删除图像,因此我在缩略图顶部创建了一个按钮。按钮将出现,并且“鼠标悬停”上的不透明度会发生变化:

我可以单击垃圾桶按钮并触发事件(警报)。问题是 FancyBox 也会在第一个事件之后立即触发(因为按钮在其父锚点内)。
如果我想让它正常工作,我只需要让垃圾桶按钮触发一个事件,然后阻止来自 FancyBox 的任何事件。
这是我的 HTML:
<a class="fancybox-thumbs" data-fancybox-group="thumb" href="[path to main image]">
<button class="btn btn-danger btn-icon delete_image_btn">
<i class='fa fa-trash-o'></i>
</button>
<img src="[path to thumbnail]" alt="" class='tip' data-placement='top' title='oldman, robot, dance'>
</a>
Run Code Online (Sandbox Code Playgroud)
一些jQuery:
$('.fancybox-thumbs').on('mouseover',function() {
$(this).children('img').css('opacity', '0.2');
$(this).children('button').css('display','block').css('opacity','1');
});
$('.fancybox-thumbs').on('mouseout',function() {
$(this).children('img').css('opacity', '1');
$(this).children('button').css('display','none');
});
// My failed attempt to prevent default click
$('.delete_image_btn').click(function() {
alert('sup');
$(this).parent('.fancybox-thumbs').prop('onclick', null);
});
Run Code Online (Sandbox Code Playgroud) 我在摆弄, preventDefault()一定是做错了什么。
$("#input").bind("keypress", function(event) {
if(event.which == 9) {
event.preventDefault();
alert("You pressed tab.");
}
});
Run Code Online (Sandbox Code Playgroud)
选项卡功能不会被阻止。这有什么问题?
我使用下面的代码示例禁用ctrl+c和ctrl+v并且它有效。我使用类似的机制在浏览器中禁用ctrl+ z(撤消),但它不起作用。
var ctrlDown = false;
var ctrlKey = 17, vKey = 86, cKey = 67, zKey = 90;
$('body').keydown(function(e) {
if (e.keyCode == 17 || e.keyCode == 91) {
ctrlDown = true;
};
}).keyup(function(e) {
if (e.keyCode == 17 || e.keyCode == 91) {
ctrlDown = false;
};
});
$("body").keydown(function(e){
if ((ctrlDown && e.keyCode == zKey) || (ctrlDown && e.keyCode == vKey) || (ctrlDown && e.keyCode == cKey)) …Run Code Online (Sandbox Code Playgroud) 我想阻止用户刷新页面,如何做到这一点?我一直在使用e.preventDefault方法,但它运行不正常。
我正在使用引导程序 3.3 并遵循选项卡的文档。
文档中给出的最简单的代码对我不起作用,我无法弄清楚原因。
$('#mainTabs a').click(function (e) {
e.preventDefault()
console.log('Clicked');
});
Run Code Online (Sandbox Code Playgroud)
当我使用
show.bs.tab
Run Code Online (Sandbox Code Playgroud)
事件, preventDefault 有效。但由于某种原因点击没有。控制台正在打印“clicked”,但不会阻止选项卡更改。
基本上我试图拦截选项卡更改,显示模式并基于用户输入,显示或不显示新选项卡。
请帮忙。
javascript preventdefault bootstrap-tabs twitter-bootstrap-3
我试图在用户按下音量按钮执行特定操作并阻止默认行为(音量更改)时进行拦截。
这是我到目前为止的代码:
RawKeyboard.instance.addListener(_keyboardListener);
void _keyboardListener(RawKeyEvent e) {
if(e.runtimeType == RawKeyUpEvent) {
RawKeyEventDataAndroid eA = e.data;
if(eA.keyCode == 24) { //volume up key
_goNextPage();
}
if(eA.keyCode == 25) { //volume down key
_goPrevPage();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何防止音量改变(并阻止音量滑块出现在顶部)?
类似的 Javascript 将调用event.preventDefault()关键事件。
这似乎是一件相当微不足道的事情,但我无法在文档中找到任何答案。
谢谢。
我正在尝试使用该event.preventDefault()方法,但不断收到错误。它说已event被弃用。
我正在制作 Firebase 注册表单,我想阻止该表单提交。
这是完整的代码。
import React from "react"
import styled from "styled-components"
import getFirebase from "../../firebase"
import useInput from "./useInput"
const SignUpForm = () => {
const firebaseInstance = getFirebase()
const email = useInput("")
const password = useInput("")
const signUp = async () => {
event.preventDefault()
try {
if (firebaseInstance) {
const user = await firebaseInstance
.auth()
.createUserWithEmailAndPassword(email.value, password.value)
console.log("user", user)
alert(`Welcome ${email.value}!`)
}
} catch (error) {
console.log("error", error)
alert(error.message)
}
} …Run Code Online (Sandbox Code Playgroud) 我有一个简单的例子,用户开始在触摸屏上滚动,然后一秒钟后,我想禁用滚动。我认为 event.preventDefault() 会停止滚动,但在滚动开始后它似乎不起作用
这是一个例子:https : //jsfiddle.net/7s5m8c6L/30/
let allowScroll=true;
function TS(e){//touchstart handler
setTimeout(function(){
allowScroll=false;
},1000)
}
function TM(e){//touchmove handler
if(!allowScroll){
e.preventDefault();
}
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,你可以开始滚动,一秒钟后,我希望滚动停止,但它没有。我知道有很多方法可以让它与 CSS 一起工作(添加溢出:隐藏),但我特别想知道为什么 preventDefault 不起作用。
preventdefault ×10
javascript ×8
jquery ×5
button ×1
dart ×1
dom-events ×1
events ×1
flutter ×1
forms ×1
html ×1
html5 ×1
keypress ×1
offlineapps ×1
onclick ×1
refresh ×1
scroll ×1
touchmove ×1