由于 event.returnValue 弃用,jQuery 无法在 Firefox 中运行

     2023-03-06     248

关键词:

【中文标题】由于 event.returnValue 弃用,jQuery 无法在 Firefox 中运行【英文标题】:jQuery not working in Firefox because of event.returnValue deprecation 【发布时间】:2014-01-11 16:17:13 【问题描述】:

我知道已经有很多关于这个主题的主题,但我还没有发现任何有用的东西。 我有一个 jQuery 代码来显示和隐藏一个 div。

在 chrome 中可以正常工作,在 Firefox 中则不行

我在 chrome 中检查了我的控制台,上面写着“不推荐使用 event.returnValue。请改用标准 event.preventDefault()。'

但我没有 event.returnValue。 该建议也不起作用(event.preventDefault)

这是我的 js:

<script>
$(document).ready(function()
    $(".aanmelden_event").click(function()
        event.preventDefault();
        $(".event_subscribe").toggleClass("uitgeklapt");
    );
);
</script>

这是我的 CSS:

.event_subscribe
    height: 0px;
    overflow:hidden;
    transition: all 2s;
    -webkit-transition: all 2s; /* Safari */

还有额外的课程:

.event_subscribe.uitgeklapt
    height: 800px;
    

我认为这是我的 jQuery 中的一些东西,带有 event.preventDefault 的东西。 我已经尝试过 e.preventdefault 和其他主题的其他一些建议的解决方案。 不幸的是,这没有用。

有人知道我在这里做错了什么吗? 我使用 jquery-1.10.2.min.js 顺便说一句。

【问题讨论】:

你还没有设置event。这可能会导致问题 您可以忽略 "event.returnValue 已弃用。请改用标准 event.preventDefault()。" 消息,它与您的问题无关(并且已修复在 jQuery 1.11 中)。 点击功能上改为function(event) IE 有一个全局事件对象,Chrome 也采用,但在 Firefox 中不存在,所以你必须在函数中添加事件参数 你需要像这样添加事件 $(".aanmelden_event").click(function(event) 【参考方案1】:

您尚未在函数中接受 event 参数:

<script>
$(document).ready(function()
    $(".aanmelden_event").click(function(event)
    // Here -----------------------------^
        event.preventDefault();
        $(".event_subscribe").toggleClass("uitgeklapt");
    );
);
</script>

因此,event 未定义,并且该代码在切换类之前抛出。您应该在列出 ReferenceError 的控制台中出现错误,因为您试图读取未声明变量的值。

它在其他一些浏览器中工作的原因是有一个全局event 对象(最初在 IE 中,然后由 Chrome 和其他一些提供以与为 IE 编写的脚本兼容)。 Firefox 不这样做,没有全局 event

【讨论】:

当没有通过'var'或函数参数定义时,事件默认为window.event。 @Bora:Firefox 中没有,也没有任何规范。 IE 可以做到这一点,Chrome(现在)也可以与最初为 IE 编写的代码兼容。 谢谢,解决方法确实是在函数之后调用(事件)。但是t没有给我你想的错误 IE 和 Chrome 不支持全局 window.event.FF。而且,是的,这确实不是 FF 遵守的标准。

解读event.returnvalue和returnfalse(代码片段)

前言首先我们要清楚returnValue是IE的一个属性,如果设置了该属性,它的值比事件句柄的返回值优先级要高,把它的值设置为false,可以取消发生事件源元素的默认动作;returnfalse就是返回一个false值。定义returnValue:设置或获取事... 查看详情

禁止网页的右键和复制功能(代码片段)

<bodyondragstart="window.event.returnValue=false"oncontextmenu="window.event.returnValue=false"onselectstart="event.returnValue=false"> 刘备用、 查看详情

禁止页面字体选择,复制

document.oncontextmenu=newFunction("event.returnValue=false");   document.onselectstart=newFunction("event.returnValue=false");         查看详情

js控制文本只能输入数字

代码如下:<inputonkeypress="setNumber()"><script>functionsetNumber(){varkeyCode=event.keyCode;if((keyCode>=48&&keyCode<=57)){event.returnValue=true;}else{event.returnValue=false;} 查看详情

asp让文本框保存扫描枪的数据

...nkeydow事件中检测按键值是否为13,如果是,那么设window.event.returnValue=false;可防止这个回车被输入.如:onkeydown="javascript:if(window.event.keyCode==13)window.event.returnValue=false;"非IE的话,由于没有event对象,需要改一下代码.参考技术A需要对... 查看详情

事件模型

IE事件模型(没有捕获)(<=ie8)attachEvent(event,function)detachEvent(event,function)第一个参数为on+‘event‘;目标对象event.srcElement;this会指向window;event.cancelBubble=true  //停止冒泡event.returnValue=false &n 查看详情

javascript阻止冒泡事件

事件兼容event=event?event:window.event;js停止冒泡·window.event?window.event.cancelBubble=true:event.stopPropagation();js阻止默认行为window.event?window.event.returnValue=false:event.preventDefault(); 查看详情

阻止事件默认行为(动作):(兼容ie9以前版本写法)

... ........   标准:event.preventDefault()   非标准:event.returnValue=false;   兼容:event.preventDefault?event.preventDefault():event.returnValue=false; 查看详情

取消默认事件更牛逼的做法

event.returnValue的作用就是:当捕捉到事件(event)时,判断为false,则阻止当前事件继续运行,window.event.returnValue=false;之后的语句将都不会执行。returnfalse不是阻止事件继续向顶层元素传播,而是阻止浏览器对事件的默认处理。 查看详情

注册表编辑器怎么用?

...Events(Event.MOUSEUP);functionnocontextmenu()event.cancelBubble=true;event.returnvalue=false;returnfalse;functionnorightclick(e)if(window.Event)if(e.which!=1)returnfalse;elseif(event.button!=1)event.cancelBubble=true;event.returnvalue=false;returnfalse;document.oncontextmenu=nocontextmenu;document.o... 查看详情

由于已弃用框架,无法编译代码

】由于已弃用框架,无法编译代码【英文标题】:Unabletocompilecodebecausedeprecatedframework【发布时间】:2019-03-0811:11:33【问题描述】:我正在研究一个有RxCocoa框架的旧代码,当我编译代码时,我看到错误【问题讨论】:使用BehaviorSub... 查看详情

由于 FirebaseSimpleLogin 已弃用,myRef authUser 返回“simpllogin:userid”

】由于FirebaseSimpleLogin已弃用,myRefauthUser返回“simpllogin:userid”【英文标题】:SinceFirebaseSimpleLoginbecamedeprecated,myRefauthUserreturns"simplelogin:userid"【发布时间】:2014-10-0403:38:31【问题描述】:由于https://www.firebase.com/blo 查看详情

页面禁用鼠标右键和选择

重新定义oncontextmenu和onselectstart就可以了。如下:document.oncontextmenu=newFunction("event.returnValue=false");document.onselectstart=newFunction("event.returnValue=false"); 查看详情

由于 UISearchDisplayController 在 iOS 8 中已弃用,如何创建 UISearchController?

】由于UISearchDisplayController在iOS8中已弃用,如何创建UISearchController?【英文标题】:HowdoIcreateaUISearchControllersinceUISearchDisplayControllerisdeprecatediniOS8?【发布时间】:2015-11-1417:42:07【问题描述】:IB中没有UISearchController,只有UISearchDisp... 查看详情

页面刷新或关闭前警告

...给用户更多选择,可添加如下事件onbeforeunload="window.event.returnValue=‘内容没有保存哦亲‘"在IE中显示效果如下:在Chrome中显示效果如下:window.event.returnValue=false;用来停止事件继续处理。 查看详情

vue页面文本禁止复制(代码片段)

 1.用js代码去控制created()this.$nextTick(()=>//禁用右键document.oncontextmenu=newFunction("event.returnValue=false")//禁用选择document.onselectstart=newFunction("event.returnValue= 查看详情

由于 Loaders 和 AsyncTask 已被弃用,您将啥用于长时间运行的任务?

】由于Loaders和AsyncTask已被弃用,您将啥用于长时间运行的任务?【英文标题】:WhatdoyouuseforlongrunningtaskssinceLoadersandAsyncTaskhavebeendeprecated?由于Loaders和AsyncTask已被弃用,您将什么用于长时间运行的任务?【发布时间】:2020-10-2611:5... 查看详情

如何禁用浏览器中的右键?

...lKey)||(window.event.shiftKey)||(event.keyCode==122))event.keyCode=0;event.returnValue=false;</script><script>functionyxl()if(window.event.altKey)window.event.returnValue=false;document.onkeydown=yxl</script><bodybgcolor="#000000"text="#666666"onkeydown="... 查看详情