首页 新闻 会员 周边

jQuery新手,有些问题求指点

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-24 21:13

<!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比较好啊,有什么好的书或视频推荐~感谢

nostic的主页 nostic | 初学一级 | 园豆:160
提问于:2016-03-21 08:31
< >
分享
最佳答案
1

function 前後加上括號代表自執行函數

函數必須要被忽叫才會執行,但加上括號後便會自己執行

$.extend 的功能是自訂函數

裡面的"liFocus"和"liBlur"是自訂的函數名稱

$(this) 指的是$("li")

這種情況下,this會是觸發function的對象

 

你問的問題大多是JavaScript的基礎,建議先清楚JavaScript再學jQuery

雖然學習順序沒有一定,但基礎是必不能少的

收获园豆:5
RosonJ | 老鸟四级 |园豆:4910 | 2016-03-21 09:00
其他回答(3)
2

锋利的jquery初次接触jquery是看的这个

起个名字 | 园豆:377 (菜鸟二级) | 2016-03-21 09:09
-1

http://www.w3school.com.cn/jquery/index.asp

这个帮助文档对新手很有帮助、可以在里面查询

多罗贝勒 | 园豆:16 (初学一级) | 2016-03-21 09:52
2

(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的内容

 

收获园豆:5
呆尐兔兔 | 园豆:342 (菜鸟二级) | 2016-03-21 10:56

谢谢~

支持(0) 反对(0) nostic | 园豆:160 (初学一级) | 2016-03-24 21:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册