国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > web前端 > jquery > 对jQuery的“$.”的理解

对jQuery的“$.”的理解

来源:程序员人生   发布时间:2014-05-16 22:40:55 阅读次数:3050次
"$"是jQuery的别名(相当于简略写法),用来表示后面调用的是jQuery的对象。比如: $("div") , jQuery("div").两种写法等价。

"$."同理也很好理解了,用来表示后面调用的是jQuery的方法。 他和"jQuery."等价;比如:

$.trim(" like ");jQuery.trim(" like "); 两种写法等价。另外,由于"$"是jQuery的别名,这个符号可能在同时引用多个JavaScript库时发生冲突。jQuery提供了jQuery.noConflict()这个函数来解决这个问题以下是api中的内容:jQuery.noConflict()

运行这个函数将变量$的控制权让渡给第一个实现它的那个库。这有助于确保jQuery不会与其他库的$对象发生冲突。在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("div p")的地方,就必须换成jQuery("div p")。注意:这个函数必须在你导入jQuery文件之后,并且在导入另一个导致冲突的库之前使用。当然也应当在其他冲突的库被使用之前,除非jQuery是最后一个导入的。

示例
将$引用的对象映射回原始的对象。

jQuery 代码:

jQuery.noConflict();
// 使用 jQuery
jQuery("div
p").hide();
// 使用其他库的 $()
$("content").style.display = 'none';

--------------------------------------------------------------------------------

恢复使用别名$,然后创建并执行一个函数,在这个函数的作用域中仍然将$作为jQuery的别名来使用。在这个函数中,原来的$对象是无效的。这个函数对于大多数不依赖于其他库的插件都十分有效。

jQuery 代码:

jQuery.noConflict();
(function($) {
$(function()
{
// 使用 $ 作为 jQuery 别名的代码
});
})(jQuery);
// 其他用 $ 作为别名的库的代码

--------------------------------------------------------------------------------

创建一个新的别名用以在接下来的库中使用jQuery对象。

jQuery 代码:

var j = jQuery.noConflict();
// 基于 jQuery 的代码
j("div
p").hide();
// 基于其他库的 $() 代码
$("content").style.display = 'none';

还有一个更强势的

jQuery.noConflict(extreme)
将$和jQuery的控制权都交还给原来的库。用之前请考虑清楚!
这是相对于简单的 noConflict 方法更极端的版本,因为这将完全重新定义jQuery。这通常用于一种极端的情况,比如你想要将jQuery嵌入一个高度冲突的环境。注意:调用此方法后极有可能导致插件失效。

--------------------------------------------------------------------------------

Revert control of both the $ and jQuery variables to their original owners. Use with discretion.
This is a more-extreme version of the simple noConflict method, as this one will completely undo what jQuery has introduced. This is to be used in an extreme case where you'd like to embed jQuery into a high-conflict environment. NOTE: It's very likely that plugins won't work after this particular method has been called.
返回值
jQuery

参数
extreme (Boolean) : 传入 true 来允许彻底将jQuery变量还原

示例
完全将 jQuery 移到一个新的命名空间。

jQuery 代码:

var dom = {};
dom.query = jQuery.noConflict(true);
结果:

// 新 jQuery 的代码
dom.query("div p").hide();
// 另一个库 $() 的代码
$("content").style.display = 'none';
// 另一个版本 jQuery 的代码
jQuery("div > p").hide();

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生