Adobe
产品

首选目的地

  • Creative Suite
  • Adobe Marketing Cloud
  • Acrobat
  • Photoshop
  • SiteCatalyst

教育

  • 适用于学生
  • 适用于中小学
  • 适用于高等教育机构

设计和照片

  • Photoshop
  • Illustrator
  • InDesign
  • Lightroom
  • Elements 系列

视频

  • Adobe Premiere
  • After Effects

Web 开发和 HTML5

  • Dreamweaver
  • 游戏 [在新窗口中打开]
  • 移动应用程序

Adobe Marketing Cloud

  • 什么是 Adobe Marketing Cloud?
  • 数字分析
  • Web 体验管理
  • 测试和目标定位

分析

  • SiteCatalyst
  • Adobe Discover
  • Insight

Experience Manager

  • CQ

目标

  • Test&Target
  • Recommendations
  • Search&Promote

媒体优化工具

  • AudienceManager
  • AudienceResearch

文档服务

  • Acrobat
  • SendNow [在新窗口中打开]

出版

  • Digital Publishing Suite

  • 查看所有产品
业务解决方案

按业务需求分

  • 数字分析
  • 数字出版
  • 文档管理
  • 测试和目标定位
  • 视频编缉和服务
  • Web 开发 [在新窗口中打开]
  • Web 体验管理
  • 查看所有业务需求

按行业分

  • 广播
  • 教育
  • 金融服务业
  • 政府部门
  • 出版
  • 零售业
  • 查看所有行业
支持和培训

我需要帮助

  • 产品
  • Adobe Marketing Cloud
  • 论坛 [在新窗口打开]

我想学习

  • 培训和教程
  • 证书 [在新窗口打开]
  • Adobe 开发人员连接
  • Adobe 设计中心
  • Adobe TV [在新窗口打开]
  • Adobe 市场营销中心
  • Adobe Labs [在新窗口中打开]
下载
  • 产品试用
  • Adobe Flash Player
  • Adobe Reader
  • Adobe AIR
  • 查看所有下载
公司
  • Adobe 工作机会
  • 投资者关系
  • 新闻中心
  • 隐私
  • 公司社会责任
  • 客户展示
  • 联系我们
  • 更多公司信息
购买
  • 在线商店
  • 针对学生、教师和职员
  • 批量许可
  • 优惠酬宾
  • 寻找经销商
  • Adobe Marketing Cloud 销售 [在新窗口中打开]
搜索
 
信息 登录
为何登录?登录后可以管理您的帐户,访问试用版下载、产品扩展和社区区域等。
欢迎,
我的 Adobe
我的信息
我的首选项
注销
隐私权 我的 Adobe
Adobe
产品 分类 购买   搜索  
解决方案 公司
帮助 培训
登录 注销 隐私权 我的 Adobe
Date Date
Qty:
Subtotal
Promotions
Estimated Shipping
VAT
Calculated at checkout
Total
Checkout
Adobe 开发者中心 / Business Catalyst Developer Center /

结合使用 jQuery 与 Business Catalyst

作者 Liam Dilley

Liam Dilley

Content

  • jQuery 是什么?
  • 使用 jQuery
  • 编写函数来划分站点功能
  • 使用 DOM 文件
  • 使用 jQuery 插件
  • 下一步阅读方向

创建日期

17 September 2012

页面工具

在 LinkedIn 上共享
书签
打印

Tags

要求

必备知识

为了充分理解本文内容,您应该熟悉 JavaScript。 最好以前有使用 Business Catalyst 构建站点的经验。

 

其他必要产品

Business Catalyst 试用站点

  • 注册免费帐户

jQuery

  • 下载

可选: Google AJAX Libraries

  • 下载

用户级别

中级

必需产品

  • Business Catalyst

jQuery 是什么?

jQuery 是一个快速、简洁的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互,可以实现快速 Web 开发。

Business Catalyst 是一种托管解决方案,也被称为软件即服务 (SAAS) 系统,这意味着您不能利用服务器端代码进行开发。 但是,您可以实现 JavaScript,利用 Business Catalyst API,并将 JavaScript 与 Business Catalyst 结合起来使用。

在本文中,您将学习如何使用 jQuery JavaScript Library 来增强 Business Catalyst 站点的功能。 您还将发现可以加快工作效率并缩短开发时间的战略。 此外,您将获得一些技巧和最佳实践,在构建 Business Catalyst 项目中的功能时可以高效地实现 jQuery。

使用 jQuery

在开始之前,您需要获得 jQuery。 您可以从jQuery 官方站点jQuery 官方站点下载最新的版本。

有一些方法可以在网站上调用 jQuery。以下是两个选项:

  1. 下载 JavaScript 文件,然后添加以下代码行来启动它:
<script type="text/javascript" src="/js/jQuery.min.js"></script>
  1. 通过 Google Hosted Libraries 链接到最新版本的 jQuery。

注意: 使用 Google Hosted Libraries 内容交付网络,直接从 Google 的数据中心网络为您的 jQuery 提供服务,与在您的网站上托管 jQuery 相比,这样做有许多好处。 其优点包括降低延迟,提高并行性和更好的缓存。

如果选择 Google Hosted Libraries 选项,有两种方法可以将 jQuery 和其他 Google Hosted Libraries 加载到您的网站。

  1. 直接链接到托管的 JavaScript 文件:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"> </script>
  1. 创建一个加载请求:
<script type="text/javascript" src="https://www.google.com/jsapi"> </script> <script type="text/javascript> google.load("jquery","1.8"); </script>

Google 加载请求方法很有用,因为您可以同时加载许多其他 Google Libraries,比如 jQuery UI 或 Google Map API 功能。 如需了解有关 Google 加载请求方法的更多信息,请阅读Google Loader Developers Guide。

使用 jQuery 兼容模式避免代码冲突

在 Business Catalyst 网站上实现 jQuery 时,重要的是要使用 jQuery 兼容模式,以避免潜在的代码问题。 Business Catalyst 使用名为Prototype的 JavaScript 库来运行站点功能,比如 Photo Galleries 模块中的 lightbox(灯箱)。 Prototype 有一个类似于 jQuery 的代码结构。 为了避免 Prototype 和 jQuery 之间的冲突,您应该考虑在所有项目中将兼容模式实现为标准模式。

您可以使用 jQuery n0Conflict 方法来确保 jQuery 正确运行。 您可以声明 noConflict 方法,如下所示:

$j = jQuery.noConflict();


将该行代码添加到脚本文件的开头,在内联脚本或在主 DOM Loading 脚本文件中均可。 您还必须将代码中的任何$实例更新为$j 。

使用外部脚本文件而不是内联脚本

有许多方法可以实现 jQuery。 在线教程往往会提供如何将内联代码复制并粘贴到模板和布局的说明。 内联编码很容易实现,但它会产生几个问题。 添加内联代码并非 jQuery 的最佳实现,并且它难以管理。 外部脚本有许多优点,比如:

  1. 创建一个 JavaScript 代码文件来影响多个页面,而不是必须重复将代码粘贴到每个单独的文件。
  2. 内联 jQuery 调用往往多次启动 DOM,并且将降低性能。
  3. 现代的编程技术需要一种代码实现方法,从表示和功能中分离出结构和内容。 HTML 文件应该包含结构和独特的页面内容,CSS 文件包含样式信息,JavaScript 文件包含客户端功能的代码,而系统代码包含服务器端的功能。 以这种方式构造的项目更易于更新和维护,并有更好的性能。

编写函数来划分站点功能

在开发代码时创建函数,可支持“使用一次”或“使用多次”的方法,这有助于增强性能和提高可管理性。 此外,使用函数的项目更易于升级。 函数是您可以调用的代码块,它们共同实现更复杂的任务,并且只有在被调用时才会被执行。 与常规的代码行不同,会延迟执行函数,直到您想使用它们。 以下是一个函数的示例:

function copyAddress(){
 if ($j(“#shippingAddress”).val() == ""){
 $j(“#shippingAddress”).val($j(“#billingAddress”).val()); } 
}

此函数只是一个片段,您可以将其发展为一个更大的函数,以便将访问者的送货地址设置为与其帐单地址相同的值。 例如,您可以在任何 jQuery 事件(比如单击事件)上或其他函数中调用这个 copyAddress 函数。 这将在另一个函数中执行本示例的代码,以触发上面演示的功能。 在单一“函数”JavaScript 文件中创建这些函数,可以实现良好的可维护性和更快的开发速度。 在更高级的实现中,您可以探索作为对象和类的 JavaScript,或构建您自己的 jQuery 插件。

只调用 DOM 一次

Document Object Model (DOM) 是放置 JavaScript 的理想位置,可以扩展网站的功能。 虽然有很多 Business Catalyst 网站使用 jQuery,但这些网站通常使用内联代码调用 jQuery 脚本,并且会多次调用 DOM。我们不推荐这种做法。 内联代码会产生许多问题。 更明显的问题之一是性能下降。 不使用内联代码,而是创建单一调用脚本(例如 dom.js),再加上您的函数文件,将 jQuery 实现到您的网站,并避免潜在的性能问题。

使用 DOM 文件

使用这种方法,您的所有代码执行都可以由单一文件中的一个 DOM 完成。 以下代码是一个 DOM 文件结构示例:


$j = jQuery.noConflict();

 // DOM LOAD $j(function(){ // Code Execution copyAddress();
 });

代码的第一行声明 noConflict 方法。 然后,只启动一次 DOM,然后运行其中一个站点函数。 现在该将始终运行函数,而这并不是最佳方式。 在本例中,在从 Business Catalyst eCommerce 系统接收付款时,很可能只需要 copyAddress 函数。

但是,智能解决方案会在需要时才运行代码。 该策略包括使用名为 .length的 JavaScript。 您可以围绕函数编写一个if语句,并使用 .length检测某个元素是否存在。 这使您可以只在需要时调用该函数。 在进行了这些修改后,DOM 文件如下所示:

$j = jQuery.noConflict(); 

// DOM LOAD $j(function() { if ( $j(“#myform”).length ) { copyAddress();
 } });

if语句确保该函数将仅当该元素存在时才运行。 这种方法有助于避免可能发生的 JavaScript 错误,比如返回一个 Null 值。 Null 值意味着 JavaScript在函数中找不到元素,无法执行操作,或者没有找到值,因此被认为是 Null(空)。 这有助于避免某些错误的发生,也可以避免在不需要时运行脚本,从而提高性能。

要调用这些 JavaScript 文件,将下面的脚本标记放在模板代码底部,直接放在 body 的闭合标记之前。

注意: 以本地方法或 Google 实现来实现 jQuery 本身,已在开头介绍过。



<script type="text/javascript" charset="utf-8" src="/js/jquery.js"></script>
 <script type="text/javascript" charset="utf-8" src="/js/functions.js"> </script> 
<script type="text/javascript" charset="utf-8" src="/js/dom.js"></script>

将脚本标记添加到 HTML body 元素而不是头部,这是可以使用的另一种策略,以提高网站的性能。

使用 jQuery 插件

您也可以在函数内部添加 jQuery 插件调用,如下面的示例所示:

function profilePage() { $j("#profileFeed").fadeIn("slow"); $j("#playVideo").prettyPhoto({ show_title: false, deeplinking: false }); }



如您所见,您可以在调用插件前执行一个操作(比如 jQuery fadeIn),也可以在它之后运行代码,这都在一个函数内完成。 在本例中,prettyPhoto jQuery plugin是之后被调用的。 请注意,代码在运行之前提到的兼容模式。 如需了解有关使用 jQuery 插件的更多信息,请访问 jQuery 插件文件归档。

下一步阅读方向

本文仅涉及了在 Business Catalyst 项目中实现 JavaScript 时的一些基础知识。 为了扩展这些概念,考虑在编写代码和函数时使用基于对象的方法,也可以探索如何编写 JavaScript 类,实现更好的面向对象的开发。

目标是争取一个简洁的实现。 将函数设置为只在需要时执行。 此策略可让您重新调用函数,并创建具有特定用途的代码,稍后在其他站点功能中也可以改变其用途。 如需了解有关使用 jQuery 的更多信息,请访问 jQuery 网站。

如需进一步学习,请查看下面的在线资源:

  • 通过 Business Catalyst 与 jQuery 将您的站点带入一个新水平: Adobe TV
  • jQuery 入门: Six Revisions 站点
  • 初学者的三十个 jQuery 教程: Webitect 站点
  • JavaScript 代码示例: Business Catalyst 知识库
 

Tutorials and samples

Tutorials

  • Using jQuery with Business Catalyst
  • Training your clients to update their sites with InContext Editing
  • Optimizing online businesses with InContext Editing
  • InContext Editing for Business Catalyst administrators

Samples

产品

  • Creative Suite
  • Adobe Marketing Cloud
  • Acrobat
  • Photoshop
  • Digital Publishing Suite
  • Elements 系列
  • SiteCatalyst

下载

  • 产品试用
  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR

支持和培训

  • 产品帮助
  • 论坛

购买

  • 在线商店
  • 针对学生、教师和职员
  • 批量许可
  • 优惠酬宾
  • 寻找经销商

公司

  • 新闻中心
  • 合作伙伴计划
  • 公司社会责任
  • 工作机会
  • 投资者关系
  • 事件
  • 法律
  • 安全性
  • 联系 Adobe
选择您的地区 中国(更改)
选择您的地区 关闭

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2013 Adobe Systems Software Ireland Ltd. All rights reserved.

使用条款 | 隐私权 | Cookies

京 ICP 备 10217899 号 京公网安备 110105010404