我正在写一个我希望在iOS,Android和webOS上运行的PhoneGap应用程序。 jQTouch适用于iOS和Android上的所有内容,但不适用于webOS。
由于webOS Mojo框架is based on Prototype(使用$
变量),因此必须在noConflict模式下使用jQuery。我可以处理那么多。
然而,问题是我还想使用jQTouch插件。 jqtouch.js
文件始终使用$
,导致加载该文件时出现JavaScript错误。
有没有办法在我的PhoneGap应用程序中运行jQTouch插件(或任何插件)而不会干扰原型?
答案 0 :(得分:6)
你应该能够将它包装在一个闭包中并传入jQuery。例如:
(function($){
alert($);
}("Hello"))
(function($){
$("foo"); // uses the jQuery rather than $
}(jQuery))
答案 1 :(得分:3)
Mojo是大多数webOS应用程序构建的标准JavaScript框架。但是,如果您没有使用其中的任何功能,那么它只是耗费您的启动时间。您只需在index.html页面顶部注释掉脚本标记即可阻止加载Mojo。
- > 然而,Mojo做了我们需要的一件事。它告诉窗口管理器应用程序何时完全加载并准备就绪。我们可以使用简单的onLoad事件处理程序手动完成此操作。将以下脚本添加到index.html页面的开头:
function onLoad(){ if(window.PalmSystem){ window.PalmSystem.stageReady(); } }然后在正文的onload事件中添加一个调用。
而已!现在,应用程序将在没有Mojo的情况下加载,并且启动速度更快。