如何使用jquery.noConflict属性

我正在使用预览dns在服务器上测试我的网页。 刚刚意识到预览dns会自动将mootools库添加到任何php页面的末尾。 可能是他们自己的统计或其他什么。

但问题是我在我的页面中使用jquery。 所以我的jquery代码断了,因为mootools和jquery都使用’$’。

我把我页面的所有页面源都放在jsbin上: http ://jsbin.com/ozime(这包括添加在mootools上)。

在这个页面中,我添加了一个示例jquery代码,该代码应该在更改下拉框时触发。 我还添加了一些警告声明。 但是,只显示第一个警报声明。 一个内部jquery代码没有。

我试过使用jquery没有冲突,但似乎没有用。

有人遇到过这个问题吗?

在包含jQuery之后,立即在脚本标记中添加以下内容。

 

还要将jQuery脚本放在mootools库之前。 订单将是:

jQuery脚本包括

noConflict代码

mootools脚本包括

我更喜欢使用自动执行匿名函数来为你的jQuery代码提供自己的范围,你可以像往常一样使用$,如果你不必担心兼容性。

如果你以前没见过,这看起来会很奇怪。 基本上,我所做的是定义一个带有参数($)的函数,然后用jQuery作为参数执行该函数。

  

在任何jquery代码之前插入以下内容:

 $j = jQuery.noConflict(true); 

现在你可以使用$ j而不是$来表示你想做的任何jquery。 即:

 $j("body") 

而不是j(function()……

尝试

 j(document).ready ( function() { alert("here"); j("select#rooms") .change ( function() { alert("here1"); } ) } ); 

您试图包装函数而不是元素,这可能导致意外行为。