不推荐使用event.returnValue.请改用标准的event.preventDefault()

Ale*_*ich 220 javascript ajax jquery

我有这个脚本:

<script>
$(document).ready(function () {
    $("#changeResumeStatus").click(function () {
        $.get("{% url 'main:changeResumeStatus' %}", function (data) {
            if (data['message'] == 'hidden') {
                $("#resumeStatus").text("??????");
            } else {
                $("#resumeStatus").text("????????????");
            }
        }, "json");
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

我在Google Chrome控制台中收到以下错误消息:

不推荐使用event.returnValue.请改用标准的event.preventDefault().

我正在使用jQuery v1.10.2并且#changeResumeStatus是一个<span>.

我的剧本出了什么问题?

Pau*_*gel 202

这只是一个警告:您的代码仍然有效,但由于该方法已被弃用,将来可能无法运行.查看Chromium相关来源相应的补丁.

这已经在jQuery 1.11中得到了认可和修复(参见此处此处).

  • 此警告还会出现在jQuery 2.0.3(此评论中最新的稳定版),并且当前里程碑设置为2.1,用于修复. (26认同)
  • 我怀疑任何人都会很快打破这个,如果这意味着所有使用JQuery <1.11的页面都会破坏. (12认同)
  • 确实.Chrome已经弃用了`event.returnValue`,它只是为了向后兼容IE而存在 (2认同)

Led*_*vin 22

仅供其他人参考,我刚接到这个,发现它是由于AngularJS.这是为了向后兼容:

if (!event.preventDefault) {
    event.preventDefault = function() {
        event.returnValue = false; //ie
    };
}
Run Code Online (Sandbox Code Playgroud)

  • 我在一个没有角度被使用或引用的裸骨站点中得到错误 - 可能是间接引用的,但我对此表示怀疑. (4认同)

ens*_*gnr 20

如果您使用Bootstrap:

当前版本的Bootstrap(3.0.2)(使用jQuery 1.10.2和Chrome)似乎也会生成此警告.

(它也在推特上这样做,BTW.)

更新

当前版本的Bootstrap(3.1.0)似乎不再生成此警告.


Vic*_*ang 19

那是你的jQuery API问题,而不是你的脚本.没什么值得担心的.


num*_*web 6

这是一个警告,与大多数JavaScript框架(jQuery,Angular,YUI,Bootstrap ...)提供向后支持从IE8到IE6的旧讨厌最多的Internet Explorer:

有一天,后向兼容性支持将被删除(IE8/7/6,因为IE9处理它),你将不会再看到这个警告(和其他IEish错误)..

这是一个时间问题(现在IE8拥有10%的全球份额,一旦达到1%就是DEAD),同时,只是忽略警告并留下禅:)