首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsRender noConflict()

JsRender noConflict()
EN

Stack Overflow用户
提问于 2014-11-23 11:42:02
回答 1查看 423关注 0票数 1

我发现了两条与上述主题相关的线索:

但是,下面的片段

代码语言:javascript
复制
  <script src="js/jsrender.js"></script>
  <script type="text/javascript">
    var myJsRender = $.noConflict();
  </script>

在以下方面的成果:

代码语言:javascript
复制
ReferenceError: $ is not defined

我在这里试图实现的是运行JsRender,而不管

  • jQuery和/或
  • JsRender的另一个实例

被加载在同一个页面上。原因:很可能是另一个插件加载JsRender。

我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-23 23:48:50

在这些问题发生时,JsRender创建了一个全局window.$ (如果jQuery没有加载),但是给出了一个$.noConflict()方法,该方法告诉JsRender不要覆盖window.$,以防另一个库正在使用它。

但是,从那时起,JsRender行为就被修改了,因此它根本不需要重新定义$。相反,如果加载了jQuery,它会向$添加方法,例如$.render$.templates$.views.converters.如果没有加载jQuery,它就会创建一个window.jsviews全局,并使用它而不是$ --所以您可以使用jsviews.renderjsviews.templatesjsviews.views.converters等等。

因此,例如,如果您想在不知道是否加载jQuery的情况下调用render方法,则可以编写:

代码语言:javascript
复制
var $ = window.jsviews || window.jQuery;
// or window.$ = window.jsviews || window.jQuery;

$.templates(...);
$.views.converters(...);
$.render(...);

或者,如果您不想使用$ --如果jQuery以外的其他库正在使用它,您可以编写:

代码语言:javascript
复制
var jsviews = window.jsviews || window.jQuery;
// or window.jsviews = window.jsviews || window.jQuery

jsviews.templates(...);
jsviews.views.converters(...);
jsviews.render(...);

我会更新这些问题包括这些信息..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27088543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档