【问题标题】:Difference between jQuery and jQuery Mobile?jQuery 和 jQuery Mobile 的区别?
【发布时间】:2012-05-10 15:14:33
【问题描述】:

我是移动 Web 开发的新手,我刚刚使用 PhoneGap 制作了一个移动应用,并经常使用 jQuery。

但是在我如何格式化以及它们在我正在测试的移动设备屏幕上的实际显示方式方面,自然存在一些小故障,在尝试解决这些问题时,我偶然发现了许多让事情变得更容易的建议我自己使用 jQuery mobile。

现在这让我很困惑——jQuery 没有格式化。那只是我的移动 CSS 初学者水平的知识导致了问题。

那么jQuery mobile到底做了什么,和普通的jQuery有什么不同呢?如果我已经了解 jQuery,那么对我来说有什么新东西?

【问题讨论】:

标签: jquery jquery-mobile


【解决方案1】:

上面没有足够的评论,所以添加到线程来回答安迪的第二个依赖问题。

我相信你要找的东西在这里:jQuery Mobile Demo

<!DOCTYPE html> 
<html>
<head>
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/[version]/jquery.mobile-    [version].min.css" />
    <script src="http://code.jquery.com/jquery-[version].min.js"></script>
    <script src="http://code.jquery.com/mobile/[version]/jquery.mobile-[version].min.js"></script>
</head>

<body>
    ...content goes here...
</body>
</html>

【讨论】:

    【解决方案2】:

    jQuery 纯粹是为了简化和标准化跨浏览器的脚本编写而设计的。它专注于底层的东西:创建元素、操作 DOM、管理属性、执行 HTTP 请求等。

    jQueryUI 是一组建立在 jQuery 之上的用户界面组件和功能(即它需要 jQuery 才能工作):按钮、对话框、滑块、选项卡、更高级的动画、拖放功能。

    jQuery 和 jQueryUI 都旨在“添加”到您的网站(桌面或移动) - 如果您想添加特定功能,jQuery 或 jQueryUI 可能会提供帮助。

    然而,

    jQuery Mobile 是一个完整的框架。它旨在成为您创建移动网站的起点。它需要 jQuery 并利用 jQuery 和 jQueryUI 的特性来提供 UI 组件和 API 特性来构建适合移动设备的网站。您仍然可以随心所欲地使用它,但如果您愿意,jQuery Mobile 可以以一种适合移动设备的方式控制整个视口。

    另一个主要区别是 jQuery 和 jQueryUI 旨在成为 HTML 和 CSS 之上的一个层。您应该能够不理会您的标记并使用 jQuery 对其进行增强。但是,jQuery Mobile 提供了单独使用 HTML 来定义您希望组件出现在何处的方法 - 例如(来自 jQuery Mobile 网站):

    <ul data-role="listview" data-inset="true" data-filter="true">
        <li><a href="#">Acura</a></li>
        <li><a href="#">Audi</a></li>
        <li><a href="#">BMW</a></li>
        <li><a href="#">Cadillac</a></li>
        <li><a href="#">Ferrari</a></li>
    </ul>
    

    data-role 属性告诉 jQuery Mobile 将此列表转换为移动友好的 UI 组件,data-insetdata-filter 属性设置其属性 - 无需编写一行 JavaScript。另一方面,jQueryUI 组件通常是通过编写几行 JavaScript 来在 DOM 中实例化组件来创建的。

    【讨论】:

    • 作为一个刚刚从基于浏览器的网站上的 jQuery+UI “前进”到了解移动设备的 jQuery Mobile 的人,我不得不说我很难看到这个特定的答案是如何收到的 41赞成,但没有 cmets。它在其主要重点中特别指出,与“建立在 jQuery 之上”的 jQueryUI 不同,jQuery Mobile 是“然而,一个完整的框架”。这与下面的其他答案完全不一致,即 jQuery Mobile 也需要运行 jQuery(非常准确 - 我认为!),这让我个人对我需要什么 .js 和 .css 更加困惑。跨度>
    • 对不起,你说得对,我没有说清楚 jQuery Mobile 也需要 jQuery——我会更新它。尽管请注意,我的回答并不是真正旨在告诉您如何启动和运行 jQuery Mobile(这不是最初的问题),只是为了对概念差异进行广泛的概述。
    • 好东西 Stu,感谢您调整您的答案,这现在更有意义了。您可能会惊讶于“jquery mobile newbies”入门有多么困难——即使是 jquerymobile 网站也没有说明这一点!这本身就导致了另一个令人困惑的问题——jquerymobile 需要什么版本的 jquery?截至撰写 jquerymobile.com 时,仅 暗示 1.4.2 与 jQuery 1.8 - 1.10 / 2.0 兼容 - 但我找不到任何地方特别声明了版本和 js/css 依赖项!
    【解决方案3】:

    什么是 jQuery 移动版

    JQM(jQuery mobile) 是一个建立在jQuery之上的手机用户界面系统。 JQM 需要 jQuery 才能工作。与其他类似的手机框架不同,JQM 的目标是支持所有主要的手机、平板电脑、电子阅读器和桌面平台,而不仅仅是移动 webkit 浏览器。该框架最显着的特性之一是使用动画页面转换的 Ajax 导航系统(非常酷)。

    对您来说可能是新事物

    JQM 向新用户投掷曲线球的一件事是 ajax 导航。来自 jquery,您可能习惯于在每个页面中包含您的 javascript,然后使用 dom 就绪($(function(){ ... }$(document).ready(function(){ .... })来启动所有有趣的 javascript 活动。但是因为 JQM 使用 ajax 导航,系统会将其他页面拉到与第一页相同的 dom 中,并且不会加载包含在 &lt;head&gt; 中的脚本。当通过 ajax 加载下一页时,您会注意到 $(function(){ ...} 中的内容在第二页上不起作用。解决方案是绑定到 pageinit 事件。以下示例将在您的旅程开始时为您提供帮助:

    $(document).on('pageinit', function(){ // this fires for each new page
    
    });
    

    为了定位某个页面,您添加页面的 id:

    $(document).on('pageinit','#page2', function(){ // this fires for #page2 only 
    
    });
    

    在开始使用 JQM 时,了解新的页面事件对您有很大帮助。 http://jquerymobile.com/demos/1.1.0/docs/api/events.html祝你好运!

    【讨论】:

      【解决方案4】:

      jQuery 是一个 DOM 操作/遍历和 AJAX JavaScript 框架。它自动抽象出不同浏览器之间的许多复杂性。有无数的 jQuery 插件可以简化许多任务。

      jQuery Mobile 是一个基于 jQuery 的面向移动应用程序的 UI 框架。它具有主题和 UI 组件。

      总而言之,它们是免费的。您不必使用 jQuery Mobile 来使用 jQuery。但是要使用 jQuery Mobile,你必须使用 jQuery。

      【讨论】:

      • 那么你能说jQuery MobilejQuery UI的手机版吗?
      • @JeffHines - 有点。它们是不同的代码库,但它们以不同的方式实现相似的目标。
      • 优秀的评论,Daniel A. White。您不必使用 jQuery Mobile 来使用 jQuery。但是要使用 jQuery Mobile,你必须使用 jQuery。
      • Alpha 版本正在开发中。 jquerymobile.com/changelog/1.5.0-alpha1
      猜你喜欢
      • 2011-04-07
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2012-07-03
      • 2010-12-19
      • 2014-05-12
      相关资源
      最近更新 更多