可以说是与handan的一段对话开始,我尝试着用jquery来制作一些应用。正如handan所说:“从各方面反映说,这个东西还要好。http://jquery.com/”。因为我告诉他我打算用Prototype JavaScript framework,这是我第一个使用并且形成产品的AJAX框架,目前1.5.1已经出来了,尽管如此何不尝试一下jquery,多一个选择不是坏事……
jquery目前的版本是1.2.1,整个javascript库不到100K。先忘了传统javascript晦涩难懂的代码吧!它对传统的javascript代码做的简化可以说是极致。用代码来说话:
传统的javascript,要得到一个DOM元素的代码是这样写:
var ele_a = document.getElementById(’a');
变量ele_a就得到了DOM中id等于a的元素对象。假如这个元素是<div id=”a”></div>,那么这样的代码可以向这个元素添加html标记:
var ele_a=document.getElementById(”a”);
ele_a.innerHTML=”<h2>note…</h2>”;
而使用jquery就全完不同,只是简单的一句代码完成:
$(”#a”).html(”<h2>note…</h2>”);
得到的效果是一样的,简化过的javascript把document用$来表示,#a就是id为a的元素(常写CSS的对#符号应该是很清楚的),对象调用html方法把<h2>note…</h2>设置到对象中。如果html方法不设参数的话,对象理解为得到元素的内容。假如元素a已经有存在的内容,如:<div id=”a”>1234</div>,调用html()方法就会返回1234内容。
alert($(”#a”).html());
通常传统的javascript提供事件处理要用到触发事件的方法函数,最常用的就是点击(onclick),更改(onchange)等。在DOM上有个按钮,要赋予这个按钮的点击事件和事件处理函数要这样做:
按钮:<input name=”clickme” type=”button” value=”点我呀!” onclick=”ok();” />
处理:
function ok(){
alert(”我被点击了!!”);
}
按钮遇上点击事件时,调用ok()函数,函数的功能很简单,就是弹出一个提示框“我被点击了!!”。如果用jquery就该这样写:
按钮:<input name=”clickme” id=”clickme” type=”button” value=”点我呀!”/>
处理:
$(”#clickme”).click
(
function(){
alert(”我被点击了!!”);
}
);
效果是一样的,看起来jquery用的代码多一点,但在按钮上就不需要定义onclick事件代码,这就规定需要为按钮设置id属性。这样做的好处是DOM可以与javascript全完分离,DOM只要按准标严格遵循规范,而javascript代就可以做为DOM的一个附加文件的体现,如DOM可以附加样式表文件一样。代码与表现分离,现在不是就流行这个吗……
值得注意的是上面的代码必须出现在$(document).ready(function(){…})里,$(document).ready()方法可以理解为传统javascript的onLoad()事件,当页面被加载时的处理事件函数。通常为<body onLoad=”处理函数”>。用$(document).ready不更好吗?同样可以代码分离,而不需要在页面里嵌入onload()代码。看看完整的代码:
$(document).ready
(
function(){
$(”#clickme”).click
(
function(){
alert(”我被点击了!!”);
}
);
});
jquery还可以控制元素CSS样式,有什么必要呢?我在使用一些优秀的AJAX产品时就有这样的效果,当我点击一条记录进行编辑时,这条记录的背景色与其它记录的不同。看上去很舒服。这就是控制样式的必要性。同样是上面说的<div id=”a”>1234</div>元素,用这样的代码可以设置这个元素的样式:
$(”#a”).css({ color: “red”, background: “blue” });
调用元素对象的css方法,设置元素的字体色为red,背景色为blue。可以结合上面的事件处理,当鼠标hover元素a之上时,执行样式设置,效果很好。
这些只是很简单的应用,我想如果从来没有学过javascript的,直接学jquery会是件非常愉快的事。我将着手对jquery在AJAX方面极富想象力的应用进行记录。
659

被折叠的 条评论
为什么被折叠?



