jQuery学习

因为上课的原因 了解到jQuery比较强大 还有ms的asp.net ajax 于是决定开始学习ajax

找到了jQuery的中文入门教程 很不错,讲的东西很多、全面 ,正是我想要的。

开始了第一个著名的Hello world 例子,下载了 Starterkit 、jQuery

修改custom.js 调试出来竟然有错误。仔细看了 下代码 没错啊,怎么出不来呢

百思不得其解,查看错误发现,竟然提示缺少文件 ,再一看根目录,顿时,快要晕了,我竟然没把jQuery.js放在根目录下面,先汗一个。

我们需要一个jQuery的库,最新的下载可以到这里找到

下载初学者包:jQuery Starterkit

下面是在学习中做的笔记 这是我的custom.js

[cce_js]
$(document).ready(function() {
// the first time
//hello world 演示点击链接弹出alert
$("a").click(function(){
//alert("Hello World!");
});
//orderedlist附加red样式
//$("#orderedlist").addClass("red");
//orderedlist的子节点添加样式
$("#orderedlist > li").addClass("blue");
//鼠标滑过最后一行 变绿
$("#orderedlist li:last").hover(function(){
$(this).addClass("green");
},function(){
$(this).removeClass("green");
});
//给orderlist结点的子节点内容添加内容
$("#orderedlist").find("li").each(function(i){
$(this).html($(this).html()+"BAM"+i);
});
//重置单个表单的内容
//$("#reset").click(function() {
//$("#testform")[0].reset();
//});
// 一次性重置对个表单
$("#reset").click(function() {
$("form").each(function() {
this.reset();
});
});
//选择所有li元素,去除了ul子元素 刷新浏览器后,所有的li元素都有了一个边框,只有ul子元素的那个li元素例外
$("li").not(":has(ul)").css("border", "1px solid black");//原文为$("li").not("[ul]").css("border", "1px solid black");
//css()样式用法 另外一个样式
//$("li").not("[ul]").css("border", "1px solid black").css("color","red");
//给所有带name属性的链接加一个背景色 不是很清楚
$("a[name]").css("background-color","#eee");
//进行部分匹配 href属性=#的发生事件
$("a[href*=#]").click(function() {//由于是部分匹配所以#、#bottom是一样的
//alert("href");
// do something with all links that point somewhere to /content/gallery
});
//选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素,比如一个FAQ的页面,答案首先会隐藏,当问题点击时,答案显示出来
$('#faq').find('dd').hide().end().find('dt').click(function() {//选择所有的dd元素全部隐藏起来 实现dt的点击事件
var answer = $(this).next();//选择下一个元素 找到dt下面紧接的一个dd元素
if (answer.is(':visible')) {
answer.slideUp("slow",function(){//上移弹出
alert("haha up")});
} else {
answer.slideDown("slow",function(){//下移弹出
alert("haha down")});
}
});
//移到文章某段的链接时,它所在的段全用上highlight样式,移走之后又恢复原样
$("a").hover(function() {
$(this).parents("p").addClass("highlight");
}, function() {
$(this).parents("p").removeClass("highlight");
});//hover(over, out)
//特效 show() hide()函数实现
//$("a").toggle(function() {
//    $(".stuff").hide('slow');
//}, function() {
//    $(".stuff").show('fast');
//});
//特效2
$("a").toggle(function() {
$(".stuff").animate({
height: 'hide',
opacity: 'hide'
}, 'slow');
}, function() {
$(".stuff").animate({
height: 'show',
opacity: 'show'
}, 'slow');
});
//这里还有一些比较好的特效
// generate markup //投票rate
//代码生成了5个链接,并将它们追加到id为"rating"容器中,当其中一个链接被点击时,该链接标明的分数就会以rating参数形式发送到rate.php,然后,结果将以XML形式会从服务器端传回来,添加到容器中,替代这些链接。
var ratingMarkup = ["Please rate: "];
for(var i=1; i <= 5; i++) {
ratingMarkup[ratingMarkup.length] = "<a href='#'>" + i + "</a> ";
}
// add markup to container and applier click handlers to anchors
$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e) {
e.preventDefault();
// send requests
$.post("rate.php", {rating: $(this).html()}, function(xml) {
// format result
var result = [
"Thanks for rating, current average: ",
$("average", xml).text(),
", number of votes: ",
$("count", xml).text()
];
// output result
$("#rating").html(result.join(''));
} );
});
//点击表格的第一行head区域,你可以看到排序的效果,再次点击会按倒过来的顺序进行排列。
//$("#large").tableSorter();
$("#large").tableSorter({
stripingRowClass: ['odd','even'],    // Class names for striping supplyed as a array.
stripRowsOnStartUp: true        // Strip rows on tableSorter init.
});
//郁闷 不知道为什么我的排序插件就是弄不出来  难道排序插件跟上面的代码有冲突?
});
[/cce_js]

总结:

虽然教程内容比较少,但是花了一个下午的时间 效果不怎么明显 下次再继续学习jQuery的plugin 还有自己插件

很显然 教程只是JQuery中一小小部分 还有很多东西 必须掌握 像css、xpath的语法

大量的类似的CSSXPath例子,更多的例子和列表可以在这里找到

你可以在Visual jQuery找到全部的事件列表,在Events栏目下.

更多的AJAX方法可以从这里 找到,或者看看API文档 下面的AJAX filed under AJAX.

很多不错的效果可以访问interface plugin collection. 这个站点提供了很多demos和文档

关于排序插件的更多例子和文档可以在 tablesorter首页找到.

经常更新的插件列表可以从jQuery官方站 on the jQuery site找到.

三级网络

上学期报考的三级网络技术,先前准备在暑假复习复习,后来,唉,计划跟不上变化啊

2009年09月10日

有些重要的事情耽误了,导致计划完全破产。现在开学一个星期了,正在努力看教程在

每天基本是花了三个小时去看书,现在差不多已经看了一半的了。

准备看完教程把思维导图做出来。

2009年09月13日

时间已经不多了 昨天已经把重点的几章全部看完了 剩下Internet的几章还没看呢

在网上找到三级网络技术的笔记 呵呵 网络就是强大。

2009年09月18日

今天翘了一天的课,开始了一整天的复习  算是临阵磨枪吧 把所有笔试重点 全部看一遍,

网络技术基础、局域网基础、网络操作系统、Internet基础等等

晚上把全部的笔试中看完了,把机试的几个重点题型,copy出来,就去睡觉了

不过那是已经1点多了。

2009年09月19日 8:00

今天开始考试了,早上起得很早,7点就起来了

上了会qq,适当的改了下签名。不过现在已经不重要了

笔试的题目很一般化,相对比较来说没有08年4月的难,据我同学说比09年4月的还简单,不过想对我来说难度还是有的,毕竟复习时间太短了,不可能方方面面复习到,再说了,考试的知识点很琐碎,零星片段,很是烦人。

9点开考,差不多10左右我就做完了,剩下的就是不会做的了。很是痛苦,因为考的知识点我都没看过

经过一番痛苦的纠结,我提前15分钟交卷。

2009年09月19日 11:00
吃完饭,睡了一会觉 ,就起来开始做机试的题目了
题型很少就那么几个,主要的是for循环、选择排序、逻辑判断。就这几种了。
找了11个题目拿来来练手。从1点多 一直做到4点多,后来 直接去考试了。
运气很好,抽到一道、比较简单的题目。可惜,我后来发现我还做错了
大部分代码是正确的
只有一行代码的失误,但是导致结果跟正确答案是不一样的
据说,三级网络上机评分时根据是正确的代码行数/总的正确代码行数X100%。要是这样的话,兴许还过得了,
假如是电脑阅卷的话,那就不可能了。命运未卜。

OOP深入

以前只是在课堂学习过面向对象的技术,而在实际的编程时基本没有实践过的

呵呵 现在只好拣起来了 看看咯 oop详细解释见百度百科

面向对象:

封装
就是把类的内部隐藏起来
好处:减少耦合 ,类内部的实现可以自由地修改,类具有清晰的对外接口

数据隐藏
实现方法就是 访问限制修饰符
public
protected internal
internal
protected
private

继承性   inheritance
一个类可以有能力直接从另一个类获得其代码和数据
派生类从基类那里获得其所有的成员
C#只支持单继承
防止继承  public sealed class  classname

何时使用继承

代码重用,减少编写的代码量
设计重用 公用的字段和方法可以放到父类中,然后由其派生新的子类
子类有自己的字段和方法

多态性
是面向对象程序设计中的重要概念。
在运行时,可以通过指向基类的应用,来调用实现派生类中的方法。
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
多态性通过派生类覆写基类中的虚函数型方法来实现。

重载Overload 存在于同一类中
方法名必须相同
参数列表必须不相同
返回类型可以不相同

覆写Override 存在与继承关系的类中
只有虚方法和抽象方法才能覆写
相同的方法名称
相同的参数列表
相同的返回值类型

抽象方法 abstract
是必须被派生类覆写的方法
可以看成没有实现体的虚方法

虚函数
使用virtual关键字public virtual bool withdraw()

接口 interface
接口为类提供了蓝图
接口只提供定义
实现接口的数据类型必须提供接口成员的实现
接口本身可以从多个基接口派生

ps:

这里有一篇实例的OOP思想、工厂模式和重构

C#的接口