运行 jQuery 3.x 时出现 CKFinder 错误

CKFinder error when running with jQuery 3.x

CKFinder 3.3(针对 PHP)似乎与 jQuery 3.0 或 3.1 不兼容。每当我尝试使用这些版本中的任何一个加载 CKFinder 时,我都会收到这两个错误并且 CKFinder 不会加载:

[Error] TypeError: undefined is not an object (evaluating 'a.event.props.concat')
    (anonymous function) (jquery.mobile.js:4:5781)
    (anonymous function) (jquery.mobile.js:4:6334)
    (anonymous function) (jquery.mobile.js:3:115)
    global code (jquery.mobile.js:3:130)
[Error] TypeError: undefined is not an object (evaluating 't.event.special.swipe.start')
init — ckfinder.js:3373
(anonymous function) — ckfinder.js:14863:116
execCb — ckfinder.js:715
check — ckfinder.js:510
enable — ckfinder.js:589
init — ckfinder.js:482:172
(anonymous function) — ckfinder.js:648:99

    check (ckfinder.js:5:21940)
    enable (ckfinder.js:5:24481)
    init (ckfinder.js:5:20742)
    (anonymous function) (ckfinder.js:5:26286)

如果我恢复到 jQuery 1.12.3(没有其他更改),它工作正常。

其中一个错误发生在 jQuery 移动设备中,所以它可能是内部的问题,但是,这是最新版本 (1.4.5),我没有发现任何关于两者之间不兼容的报告jQuery 移动和 jQuery 3. 我也尝试使用 jQuery 迁移插件,但这没有帮助。

我可以通过告诉 CKFinder 使用 jQuery 1.12 而它嵌入的页面使用 3.1 来解决这个问题,但是,加载两个副本 jQuery 显然并不理想。

这里只是一个注释,如工单上的回答https://github.com/ckfinder/ckfinder/issues/299#issuecomment-239440766

最新jQuery Mobile Framework 1.4.5 于2014 年10 月31 日发布。它是在jQuery 2.2 之前的版本,尚不支持https://github.com/jquery/jquery-mobile/issues/8381。同样在 jQuery 3.x 发布之前:3.0 - 2016 年 6 月 9 日发布; 3.1 - 2016 年 7 月 7 日发布。

如文档所示:

jQuery Mobile 1.4.x works with versions of jQuery core from 1.8.3 to 1.11.1 / 2.1.1.

因此,直到 jQuery Mobile 与 jQuery 3.x 本身不兼容,CKFinder 也无法使用它。