繁体   English   中英

IE8-J8中不支持JQuery中的.on()函数

[英]IE8 - .on() function in JQuery is not supported in ie8

嗨,我正在使用Cropit插件在我的项目中裁剪图像。 但是它在IE8中运行JQUERY的.on()方法时显示出一些错误。 请帮助我解决这个问题。

这是codepen中的示例代码

以下代码中显示的错误

 this.$fileInput.on("change.cropit", this.onFileChange.bind(this));
        this.$preview.on(Cropit.PREVIEW_EVENTS, this.onPreviewEvent.bind(this));
        this.$zoomSlider.on(Cropit.ZOOM_INPUT_EVENTS, this.onZoomSliderChange.bind(this));
        if (this.options.allowDragNDrop) {
            this.$preview.on("dragover.cropit dragleave.cropit", this.onDragOver.bind(this));
            return this.$preview.on("drop.cropit", this.onDrop.bind(this));
        }

该错误仅在IE8中显示。 提前致谢

这在IE8(实际版本)中可以正常工作

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script>
$(document).ready(function () {
    this.$fileInput.on("change.cropit", this.onFileChange.bind(this));
        this.$preview.on(Cropit.PREVIEW_EVENTS, this.onPreviewEvent.bind(this));
        this.$zoomSlider.on(Cropit.ZOOM_INPUT_EVENTS, this.onZoomSliderChange.bind(this));
        if (this.options.allowDragNDrop) {
            this.$preview.on("dragover.cropit dragleave.cropit", this.onDragOver.bind(this));
            return this.$preview.on("drop.cropit", this.onDrop.bind(this));
        }
});
</script>

我用IE 8加载了XP盒。CodePen根本不运行,其他主要的沙盒(如JSFiddle或JSBin)也没有运行。 因此,我从CodePen中获取了代码(在工作框中)并将其放在静态HTML文件中。 接下来,我链接到正确的Cropit源文件 (不是可以从其PR页面获取的vendor.js),遇到的第一个错误不是jQuery,而是Cropit本身:

Object.defineProperty(exports, '__esModule', {
  value: true
});

对象不支持此属性或方法

错误

经过进一步的研究,结果表明IE8对defineProperty()支持有限。 实际上,从此ECMA兼容性站点来看,IE8很难处理大多数Object属性。

问题不在于您使用的是哪个jQuery版本,而是IE8。 您只需要像Microsoft一样终止对它的支持即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM