标签: preventdefault

undo preventDefault()或以编程方式禁用链接集合的更好方法

我有一个页面,其中包含网络状态的事件侦听器.当网络"离线"时,我想禁用任何跨域链接以进入离线模式.我试图使用.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)

我正在寻找一种可扩展的解决方案,如果页面上有大量链接,则不会导致延迟.是否有一个简单的解决方案来扭转 …

javascript jquery html5 offlineapps preventdefault

5
推荐指数
1
解决办法
2万
查看次数

JS:如何防止中键的默认处理?

这似乎是一个荒谬的简单问题,但似乎更难......

我想阻止对中键的默认处理。我创建了一个的jsfiddle并加送stopPropagationstopImmediatePropagationpreventDefaultreturn 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 上测试。

我希望你们中的某个人能找出为什么这个脚本不会阻止默认处理。

javascript preventdefault

5
推荐指数
1
解决办法
5664
查看次数

防止锚内的默认单击按钮

我正在使用 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)

jquery onclick button preventdefault

5
推荐指数
1
解决办法
5638
查看次数

为什么在按 Tab 键后不阻止默认()停止焦点更改?

我在摆弄, preventDefault()一定是做错了什么。

$("#input").bind("keypress", function(event) {
    if(event.which == 9) {
    event.preventDefault();
    alert("You pressed tab.");
    }
});
Run Code Online (Sandbox Code Playgroud)

选项卡功能不会被阻止。这有什么问题?

javascript jquery keypress preventdefault

5
推荐指数
1
解决办法
6974
查看次数

阻止浏览器中的 ctrl+z

我使用下面的代码示例禁用ctrl+cctrl+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)

javascript jquery preventdefault

5
推荐指数
1
解决办法
5431
查看次数

阻止用户刷新页面

我想阻止用户刷新页面,如何做到这一点?我一直在使用e.preventDefault方法,但它运行不正常。

html javascript jquery refresh preventdefault

5
推荐指数
1
解决办法
2万
查看次数

bootstrap 选项卡单击 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

5
推荐指数
1
解决办法
3083
查看次数

Flutter:如何防止按键时的默认行为?

我试图在用户按下音量按钮执行特定操作并阻止默认行为(音量更改)时进行拦截。

这是我到目前为止的代码:

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()关键事件。

这似乎是一件相当微不足道的事情,但我无法在文档中找到任何答案。

谢谢。

events event-handling preventdefault dart flutter

5
推荐指数
1
解决办法
1008
查看次数

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)

javascript forms event-handling dom-events preventdefault

5
推荐指数
1
解决办法
2万
查看次数

滚动开始后Javascript停止在touchmove上滚动

我有一个简单的例子,用户开始在触摸屏上滚动,然后一秒钟后,我想禁用滚动。我认为 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 不起作用。

javascript scroll event-handling preventdefault touchmove

5
推荐指数
1
解决办法
156
查看次数