jquery - zepto.js : Viewport and Lazyload plugins?

标签 jquery viewport zepto lazy-loading

我曾经使用 jQuery 并正在使用

我现在使用zepto.js而不是 jQuery,当然现在插件都出现以下错误。

Uncaught ReferenceError: jQuery is not defined

如果我将两个插件从 })(jQuery); 更新为 })(Zepto); 则会出现以下错误...

Uncaught TypeError: Cannot read property ':' of undefined

对此有什么想法吗?是否可以让这些插件与 Zepto 一起使用? Zepto 是不是几乎与 Jquery 一样,只是没有较旧的浏览器兼容性和额外的触摸事件?

提前谢谢您。

马特

最佳答案

导致错误的行似乎是:

.extend($.expr[':'], {

jQuery 使用自己的 CSS 样式选择器评估器,称为 Sizzle。除了允许您使用 $('#id .cls1 .cls2, #otherid') 和标准 CSS 伪选择器之外,它还支持使用自定义选择器进行扩展,例如内置 :visible 选择器或此插件提供的 :above-the-fold 选择器。

由于现代移动浏览器支持用于 CSS 选择的 native document.querySelectorAll 函数,因此不需要像 Sizzle 这样的库,从而节省了大量的 JavaScript。 (这就是我们喜欢 Zepto 的原因。)副作用是不支持这些自定义选择器并且 $.expr 不存在。任何依赖于这些的行(包括插件中的该行)都会失败。

好消息是,这些都是方便的选择器,您可以将它们从脚本中删除。如果您不想以这种方式查找折叠上方和下方的元素,则可以将它们从代码中删除。您还需要解决库调用 $this.is(":visible") 的行,但除此之外,我真的没有看到任何太特定于 jQuery 的内容。

关于jquery - zepto.js : Viewport and Lazyload plugins?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310048/

相关文章:

javascript - 如何解决 javascript 文本框上的按键要求?

jQuery 使用哈希向 li href 添加一个类?

google-chrome - 视口(viewport)设备宽度 : incorrect width/large font in Safari landscape (correct on Chrome)

Javascript:如何检查元素是否可见?

Jquery Id 选择器不适用于 Js Id 选择器

javascript - 如果图像丢失,如何隐藏父 div

css - 视口(viewport)禁用缩放并显示所有页面

javascript - ExtJS 4.2.1 如何组织Viewport空间

javascript - 错误 : Zeptojs Animate Is Not A Function

javascript 到 zepto - 未捕获的 ReferenceError : setColor is not defined