$不适用于新网站中的jQuery

jef*_*ind 3 javascript jquery joomla

我已经使用jQuery已经有好几年了,在我将jQuery脚本包含在我正在处理的任何网站中之后,我总是会使用$for jQuery对象.例如:

$('#my_selector').click(function(){...
Run Code Online (Sandbox Code Playgroud)

我几年前在Joomla 1.6中建立了一个网站,有超过200页,几乎所有这些网页都使用了jQuery,所有这些网站都有$.现在我正在重建Joomla 3.3.0中的网站.有趣的是,现在有时候$在识别jQuery对象时jQuery它们不起作用,但是当我使用它时它起作用.例如.上面的代码示例必须更改为:

jQuery('#my_selector').click(function(){...
Run Code Online (Sandbox Code Playgroud)

这很有效.最奇怪的是,在一个页面上,它似乎是$一些jQuery 的作品,但不是全部.我看到的错误就是这个:

TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)

似乎问题主要发生在运行after load complete情况的函数上.无论如何,我只是想知道那里的人是否知道为什么$会停止识别jQuery函数和对象.

谢谢!

gio*_*gio 7

您最有可能使用冲突库,这意味着:另一个声明(并因此覆盖)变量的脚本/库$.将所有代码包装在一个闭包中,你应该是好的:

(function($) {
    $('#my_selector').doStuff();
})(jQuery)
Run Code Online (Sandbox Code Playgroud)

或者,如果需要在文档准备好后执行:

jQuery(document).ready(function($) {
    $('#my_selector').doStuff();
});
Run Code Online (Sandbox Code Playgroud)