闲余时间,写个博客,记录一下,最近的技术问题,O(∩_∩)O哈哈~
帮同学做一个网站,发现有人用mootools框架做了一个例子,觉的很不错,自己也尝试做一个Demo。我用mootools框架做了一个菜单,当我把这个菜单加载到其他页面的时候就会出现错误,独立的时候就没错,这个为什么呢,纠结我许久。最后发现原来是mootools 和jquery类库发生冲突啊,怎么可能会这个呢,但是实际就是这个的呀;一查看到一篇文章,最后就解决了这个问题,也就有了这篇日记了。
对于jQuery来说我们可以使用
var jq=jQuery.noConflict();
//这个在你少量简单的代码可以用这个方法
这段代码将jQuery中的$全部转换为jq,但是这种方法使原有代码中需要修改的地方很多的话。
并且很多JS使用该方法后会出现一些问题,导致无法正常运行。
这个问题实质上是JS的命名空间问题,在所有基于jQuery的js中,我们在代码开头加上
(function($){ //在这里写你的代码吧
})(jQuery);
这样之后你不需要修改任何原有的代码,能够保证该JS能够正常运行。
同时Mootools不会受到干扰,因为现在原有的代码已经被限定在这个匿名函数中了。
(function($){})(jQuery);
这个写法主要的作用是保证jQuery不与其他类库或变量有冲突。
首先是要保证jQuery这个变量名与外部没有冲突(jQuery内部$与jQuery是同一个东西,有两个名字的原因就是怕$与其他变量名有冲突,jQuery与其他变量冲突的几率非常小)并传入匿名对象,匿名对象给参数起名叫做$(其实和jQuery内部是一样的)。
最后你就可以自由的在(function($){})(jQuery);里写你的JS而不需要考虑与外界变量是否存在冲突。
ok,我也修改成功了。简单吧?顺便把我修改的代码贴出来吧
<link href="@Url.Content("~/CSS/Photo1.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/JS/Photo/jquery.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/JS/Photo/jquery.nivo.slider.js")" type="text/javascript"></script>
<div class="featured_slider">
<div id="featured_slider_bg" class="featured_slider_pattern">
<div id="slider-wrapper">
<div id="slider" class="nivoSlider">
<a href="#" title="Featured Slide" target="_blank">
<img src="images/1.jpg" alt="" title="介绍内容" />
</a><a href="#" title="Slide With Caption" target="_blank">
<img src="images/2.jpg" alt="" title="介绍内容 " />
</a><a href="#" title="Aenean sagittis aliquam leo ut aliquet" target="_blank">
<img src="images/3.jpg" alt="" title="介绍内容" />
</a><a href="#" title="Lorem Ipsum" target="_blank">
<img src="images/4.jpg" alt="" title="介绍内容" />
</a>
</div>
<div class="slider_border">
</div>
</div>
</div>
</div>
<script type="text/javascript">
jQuery.noConflict(); //释放jquery中$定义,并直接使用jQuery代替平时的$
(function ($) {
$(window).load(function () {
$('#slider').nivoSlider({
controlNav: false,
effect: 'random', //Specify sets like: 'fold,fade,sliceDown'
animSpeed: 500, //Slide transition speed
captionOpacity: 0.9,
directionNav: true, //Next & Prev
controlNav: true, // 1,2,3... navigation
pauseTime: 3000, // How long each slide will show
directionNavHide: true,
pauseOnHover: true //Stop animation while hovering
});
});
})(jQuery);
// $('someid').style.display = 'none'; //原mootools中的$照旧使用
</script>
相关推荐
解决其他js和jquery冲突方法 JS和jQuery是两个非常常用的JavaScript库,但是当它们一起使用时,可能会出现冲突。解决这种冲突的方法是使用noConflict()方法将变量$的控制权让渡给其他库。 在开发过程中,可能还会...
在JavaScript的开发环境中,尤其是当使用多个库或框架时,比如jQuery和其他JavaScript库(如Prototype、MooTools等),可能会遇到函数名或选择器符号`$`的冲突问题。这是因为这些库都倾向于使用`$`作为主要的函数或...
然而,在实际应用中,由于各种第三方插件和库的引入,可能会出现JavaScript库之间的冲突,尤其是当JQuery与其他使用$符号作为主要作用域的库(如Prototype或MooTools)同时存在时。标题中的"ecshop解决jquery冲突js...
然而,当使用jQuery与其他JavaScript库(如 Prototype、MooTools 等)时,可能会遇到“美元符冲突”问题,因为这些库中也可能使用了`$`作为主要的函数调用符号。本文将深入探讨如何解决jQuery中的美元符冲突。 ### ...
为了解决这个问题,jQuery提供了一个叫做`noConflict()`的方法,用于释放`$`符号的控制权,避免冲突。 1. 同一页面上多个jQuery版本的冲突解决: 在HTML文件中,你可以按照引入不同版本jQuery的顺序,通过`...
MooTools是一款强大的...通过阅读"Mootools1.4中文PDF手册",开发者可以深入了解MooTools的使用方法和最佳实践,而"MooTools-Core-1.5.1.js"则是实际项目中的运行库,结合手册学习,可以迅速提升JavaScript开发技能。
jQuery是一个非常流行的JavaScript库,它提供了一套简洁的方法来进行DOM操作和AJAX调用等。在使用jQuery时,一个常见的做法是使用美元符号($)作为jQuery对象的别名。这种做法主要是为了在编写代码时简化jQuery...
一个简单的斑马纹表格,通过IE6/7/8、firefox、opera等浏览器测试。如果页面上有大量的表格数据时,隔行变色的...提示, jquery 与mootools存在一定的冲突,jquery与mootools混合的环境未测试过,不一定保证可正常使用
当我们需要在同一个网页项目中使用jQuery和其他JavaScript库时,经常会出现JavaScript库之间的冲突问题。这种冲突主要表现在库中定义的全局变量、函数或对象上。特别是一些流行的JavaScript库,例如Prototype.js、...
- **与jQuery**:MooTools和jQuery都是流行的JavaScript库,但MooTools更注重面向对象编程,而jQuery更倾向于实用性和易用性。 - **与Prototype**:MooTools和Prototype都有类似的功能,但在设计哲学和API上有差异...
总的来说,`noConflict()`是jQuery提供的一种解决库之间符号冲突的机制,它允许开发者在多框架环境中灵活地管理和使用jQuery。通过合理使用`noConflict()`,我们可以确保各种JavaScript库在同一个页面上和谐共存,...
总的来说,解决jQuery和其他框架的`$`命名冲突主要有三个步骤:识别冲突、隔离作用域(通过`noConflict()`或闭包)以及使用`jQuery`代替`$`。根据你的项目需求和代码结构,选择最适合的方式来避免冲突,确保各个库和...
4. **JavaScript代码**:`JS`目录可能包含了插件的核心JavaScript文件,其中包含了实现多选功能的关键逻辑和方法。 5. **插件集合**:`Plugins`可能包含其他与多选功能相关的辅助插件或扩展,这些插件可以增强主插件...
以上两种方法都可以有效解决在多JavaScript库环境中使用jQuery时出现的$()函数冲突问题,开发者可以根据实际情况选择适合的解决方式。需要特别注意的是,在多库环境中,最好不要使用$()作为参数传递,而应该使用完整...
MooTools的`Element`类是DOM操作的核心,提供了丰富的静态和实例方法。它还引入了事件处理机制,如`addEvent`和`removeEvent`,支持DOM0级和DOM2级事件。 #### 2.4 AJAX与动画 MooTools的`Request`类处理AJAX请求...
通过使用类、对象和命名空间,可以有效地组织和隔离代码,避免命名冲突。 - `Core`:基础模块,包括基本的数据类型、函数扩展和DOM操作。 - `More`:可选扩展模块,包含额外的功能,如动画、效果、事件处理等。 2...
解决`$`符号冲突的首要方法是使用jQuery提供的`$.noConflict()`函数。这个函数的作用是释放`$`变量,将其控制权交还给之前占用它的库。例如,如果我们有`jquery-1.11.0.js`和`jquery-1.5.0.js`两个版本的jQuery,...
这个文件是MooTools的核心非压缩版本,"NC"代表"No Conflict",意味着它与其它JavaScript库(如jQuery)可以更好地共存,避免命名冲突。核心库包含了MooTools的基本组件,如类系统、事件处理、DOM操作等。开发者可以...