1

我正在PhoneGap 中编写一个我想在iOS、Android 和webOS 上运行的应用程序。jQTouch 在 iOS 和 Android 上的一切都很好,但在 webOS 上却不行。

由于 webOS Mojo 框架是基于 Prototype(使用$变量)的,因此必须在 noConflict 模式下使用 jQuery。我能应付那么多。

但是,问题是我也想使用 jQTouch 插件。该jqtouch.js文件$始终使用,在加载该文件时导致 JavaScript 错误。

有没有办法在我的 PhoneGap 应用程序中运行 jQTouch 插件(或任何插件)而不干扰 Prototype?

4

2 回答 2

6

您应该能够将其包装在一个闭包中并传入 jQuery。例如:

(function($){
   alert($);
}("Hello"))

(function($){
   $("foo"); // uses the jQuery rather than $
}(jQuery))
于 2010-06-10T23:50:24.390 回答
3

实际上你可以摆脱原型,所以没有冲突。从他们的编程指南之一中阅读这段摘录:

Mojo 是构建大多数 webOS 应用程序的标准 JavaScript 框架。但是,如果您没有使用其中的任何功能,那么它只会浪费您的启动时间。您可以通过在 index.html 页面顶部注释掉脚本标记来阻止 Mojo 加载。

--> Mojo 做了一件我们需要的事情。当应用程序完全加载并准备好运行时,它会告诉窗口管理器。我们可以使用简单的 onLoad 事件处理程序手动执行此操作。将以下脚本添加到 index.html 页面的头部:

函数 onLoad() { if (window.PalmSystem) { window.PalmSystem.stageReady(); } }

然后在 body 的 onload 事件中添加一个调用。

就是这样!现在应用程序将在没有 Mojo 的情况下加载并且启动速度更快。

于 2011-01-02T15:06:37.607 回答