<!DOCTYPE html>
<html>
<head>
<!--引入jQuery文件-->
<script type="text/javascript" src="http://www.imooc.com/data/jquery-1.8.2.min.js"></script>
</head>
<body>
<div id="content">
<ul>
<li>语文</li>
<li>数学</li>
<li>英语</li>
<li>物理</li>
<li>化学</li>
<li>生物</li>
</ul>
</div>
<script type="text/javascript">
(function($){ //为什么这里加括号了,这么写代表什么意思,刚接触jquery,不太懂
$.extend({
"liFocus":function(myli){
liFocus, myli是已经定义好的吗?
myli.css("background-color","#ccc");
},
"liBlur":function(myli){
myli.css("background-color","#fff");
}
});
})(jQuery);这个东西是必带的吗?
$(function(){
$("li").bind("mouseover",function(){
$.liFocus($(this));这个$this指的什么啊
});
$("li").bind("mouseout",function(){
$.liBlur($(this));
});
});
</script>
</body>
</html>
最后想问一下,怎么学jQuery比较好啊,有什么好的书或视频推荐~感谢
function 前後加上括號代表自執行函數
函數必須要被忽叫才會執行,但加上括號後便會自己執行
$.extend 的功能是自訂函數
裡面的"liFocus"和"liBlur"是自訂的函數名稱
$(this) 指的是$("li")
這種情況下,this會是觸發function的對象
你問的問題大多是JavaScript的基礎,建議先清楚JavaScript再學jQuery
雖然學習順序沒有一定,但基礎是必不能少的
锋利的jquery初次接触jquery是看的这个
http://www.w3school.com.cn/jquery/index.asp
这个帮助文档对新手很有帮助、可以在里面查询
(1) 为什么加括号?加括号代表自执行函数,函数需要调用才会执行,但是加上括号会自执行。通常这种情况下,是为了避免污染全局变量,
(2) myli是已经定义好的吗?$.extend是jQuery提供的扩展方法的函数,即jQuery并没有 "liBlur" 方法,根据自己需要扩展的,myli是传入的形参,即你调用这个自定义函数的时候传入的参数(在这里指代你想改变背景的DOM元素)
(3) (jQuery);这个东西是必带的吗? 这个的jQuery是自执行函数传入的参数,即加括号的地方的 $ 就是这里传入的,不传入实参的话,这个函数内部的 $ 就是undefined了。
(4) 这个$this指的什么啊?
$.liFocus($(this)); this指代你选择的 $('li'),this指代的调用的那个对象,相当于c中的this,python中的self
(5) 怎么学jQuery比较好啊? 这个问题每个人学习方法不一样,建议先学js,《javascript权威指南》,再学jquery使用方法,《锋利的jquery》,最后建议看jquery的API和源码,比如extend就是其API的一部分
望采纳~ 欢迎关注我的blog,近期将写关于javasript的内容
谢谢~