我发现了两条与上述主题相关的线索:
但是,下面的片段
<script src="js/jsrender.js"></script>
<script type="text/javascript">
var myJsRender = $.noConflict();
</script>在以下方面的成果:
ReferenceError: $ is not defined我在这里试图实现的是运行JsRender,而不管
被加载在同一个页面上。原因:很可能是另一个插件加载JsRender。
我在这里错过了什么?
发布于 2014-11-23 23:48:50
在这些问题发生时,JsRender创建了一个全局window.$ (如果jQuery没有加载),但是给出了一个$.noConflict()方法,该方法告诉JsRender不要覆盖window.$,以防另一个库正在使用它。
但是,从那时起,JsRender行为就被修改了,因此它根本不需要重新定义$。相反,如果加载了jQuery,它会向$添加方法,例如$.render、$.templates、$.views.converters.如果没有加载jQuery,它就会创建一个window.jsviews全局,并使用它而不是$ --所以您可以使用jsviews.render、jsviews.templates、jsviews.views.converters等等。
因此,例如,如果您想在不知道是否加载jQuery的情况下调用render方法,则可以编写:
var $ = window.jsviews || window.jQuery;
// or window.$ = window.jsviews || window.jQuery;
$.templates(...);
$.views.converters(...);
$.render(...);或者,如果您不想使用$ --如果jQuery以外的其他库正在使用它,您可以编写:
var jsviews = window.jsviews || window.jQuery;
// or window.jsviews = window.jsviews || window.jQuery
jsviews.templates(...);
jsviews.views.converters(...);
jsviews.render(...);我会更新这些问题包括这些信息..。
https://stackoverflow.com/questions/27088543
复制相似问题