$(function() {
jQuery.noConflict(); //把$让渡给其它类库
(function($){
$("div p").click(function(){alert("cssrain!")});
})(jQuery); //一个闭包
});
//实际上这个$只是个形参而已 ,真正的参数是jQuery. 所以当你用prototype里面的$时,并不冲突。
</script>
<div> <p>aaaaaaaaaaaaaaaaa</p></div>
jQuery.noConflict(); //把$让渡给其它类库
(function($){
$("div p").click(function(){alert("cssrain!")});
})(jQuery); //一个闭包
});
//实际上这个$只是个形参而已 ,真正的参数是jQuery. 所以当你用prototype里面的$时,并不冲突。
</script>
<div> <p>aaaaaaaaaaaaaaaaa</p></div>
你也许会问(function($){
$("div p").click(function(){alert("cssrain!")});
})(jQuery); //一个闭包
这是什么写法啊?
别急,我也是请教了upc ,才稍微懂了点。
其实:
(function($){
$("div p").click(。。。);
})(jQuery);
就是等于
function tempFunction($){ //创建一个以$为形参的函数
$("div p").click(....);
}
TempFunction(jQuery); //传入实参jQuery执行函数.
干脆直接这么写 ,算了
(function(cssrain){
cssrain("div p").click(.... );
})(jQuery); //一个闭包
闭包的基本写法:
(function(){do someting})();
//这个你就理解为定义一个匿名函数并立即执行
带参数的话就这样:
(function(形参){do someting})(实参);
另外
(function(){var upc="i am upc"})();
alert(upc);
会提示undefined。
因为闭包后,里面的变量就相当于局部了。
闭包的好处:
不增加额外的全局变量,
执行过程中所有变量都是在匿名函数内部。