测试一下第一篇文章,转自 http://higrid.net/c-art-jquery_getting_started.htm
原文:中文jquery入门必读的教程-higrid.net
中文jquery入门必读的教程网上也有很多版本,比较多的jQuery中文入门教程是译自Getting Started with jQuery。本文中文jquery入门必读的教程就是对jQuery中文入门教程这个指南进行一些修订。若你对jquery不了解,可以参看higrid上另一篇文章快速提升jQuery,jquery ui,jquery ajax,jquery api,jquery教程技巧 Jquery是继prototype之后又一个优秀的Javascrīpt框架。 本jQuery中文教程没有循序渐进地对jQuery的各种方法和使用进行介绍,仅仅是一个对jQuery库的说明,要求读者了解HTML(DOM)和CSS的一些常识。它包括了一个简单的Hello World的例子,选择器和事件基础,AJAX、FX的用法,以及如何制作jQuery的插件。这个指南包括了很多代码,你可以copy它们,并试着修改它们,看看产生的效果。相信通过本教程的学习,你能很快掌握jquery的一些基本操作方法,然后最重要的是:在实践中逐步学习。
中文jquery安装教程一开始,我们需要一个jQuery的库,最新的下载可以到这里找到。这个指南提供一个基本包含实例的包供下载.
下载:jQuery Starterkit
(注:一定要下载这个包,光看文章不实践肯定是不行的。)
下载后解压缩,然后用你最喜欢的文本编辑器打开starterkit.html和custom.js这两个文件。(注:这两个就是例子文件,所有的例子都用这两个例子作出,custom.js写jQuery代码,starterkit.html观察效果.建议用editPlus打开)
现在,我们就已经做好了一切准备来进行这个著名的"Hello world"例子.
中文jquery教程第一个例子Hello jQuery在做所有事情之前,我们要让jQuery读取和处理文档的DOM,必须尽可能快地在DOM载入后开始执行事件,所以,我们用一个ready事件作为处理HTML文档的开始.看看我们打开的custom.js这个文件,里面已经准备好了:
$(document).ready(function() {// do stuff when DOM is ready
});
放一个简单的alert事件在需要等DOM完成载入,所以我们把任务稍稍变复杂一点:在点击任何一个链接时显示一个alert.
$(document).ready(function() {$("a").click(function() {
alert("Hello world!");
});
});
这样在你点击页面的一个链接时都会触发这个"Hello world"的提示。
(注:请照此代码修改custom.js并保存,然后用浏览器打开starterkit.html观察效果。)
让我们看一下这些修改是什么含义。$("a") 是一个jQuery选择器(selector),在这里,它选择所有的a标签(注:即<a></a>),$号是 jQuery “类”(jQuery "class")的一个别称,因此$()构造了一个新的jQuery 对象(jQuery object)。函数 click() 是这个jQuery对象的一个方法,它绑定了一个单击事件到所有选中的标签(这里是所有的a标签),并在事件触发时执行了它所提供的alert方法.
这里有一个拟行相似功能的代码:
<a href="#" onclick="alert('Hello world')">Link</a>不同之处很明显,用jQuery不需要在每个a标签上写onclick事件,所以我们拥有了一个整洁的结构文档(HTML)和一个行为文档(JS),达到了将结构与行为分开的目的,就像我们使用CSS追求的一样.
下面我们会更多地了解到选择器与事件.
Find me:使用选择器和事件jQuery提供两种方式来选择html的elements,第一种是用CSS和Xpath选择器联合起来形成一个字符串来传送到jQuery的构造器(如:$("div > ul a"));第二种是用jQuery对象的几个methods(方法)。这两种方式还可以联合起来混合使用。
为了测试一下这些选择器,我们来试着在我们starterkit.html中选择并修改第一个ordered list.
一开始,我们需要选择这个list本身,这个list有一个ID叫“orderedlist”,通常的javascript写法是document.getElementById("orderedlist").在jQuery中,我们这样做:
$(document).ready(function() {$("#orderedlist").addClass("red");
});
这里将starterkit中的一个CSS样式red附加到了orderedlist上(注:参考测试包中的css目录下的core.css,其中定义了red样式)。因此,在你刷新了starterkit.html后,你将会看到第一个有序列表(ordered list )背景色变成了红色,而第二个有序列表没有变化.
现在,让我们添加一些新的样式到list的子节点.
$(document).ready(function() {$("#orderedlist > li").addClass("blue");
});
这样,所有orderedlist中的li都附加了样式"blue"。
现在我们再做个复杂一点的,当把鼠标放在li对象上面和移开时进行样式切换,但只在list的最后一个element上生效。
$(document).ready(function() {$("#orderedlist li:last").hover(function() {
$(this).addClass("green");
}, function() {
$(this).removeClass("green");
});
});
还有大量的类似的CSS和XPath例子,更多的例子和列表可以在这里找到。(注:入门看此文,修行在个人,要想在入门之后懂更多,所以这段话的几个链接迟早是要必看的!不会又要翻译吧...^_^!)
每一个onXXX事件都有效,如onclick,onchange,onsubmit等,都有jQuery等价表示方法(注:jQuery不喜欢onXXX,所以都改成了XXX,去掉了on)。其他的一些事件,如ready和hover,也提供了相应的方法。
你可以在Visual jQuery找到全部的事件列表,在Events栏目下.
用这些选择器和事件你已经可以做很多的事情了,但这里有一个更强的好东东!
$(document).ready(function() {$("#orderedlist").find("li").each(function(i) {
$(this).html( $(this).html() + " BAM! " + i );
});
});
find() 让你在已经选择的element中作条件查找,因此 $("#orderedlist).find("li") 就像 $("#orderedlist li")一样。each()方法迭代了所有的li,并可以在此基础上作更多的处理。 大部分的方法,如addClass(), 都可以用它们自己的 each() 。在这个例子中, html()用来获取每个li的html文本, 追加一些文字,并将之设置为li的html文本。(注:从这个例子可以看到.html()方法是获取对象的html代码,而.html('xxx')是设置'xxx'为对象的html代码)
另一个经常碰到的任务是在没有被jQuery覆盖的DOM元素上call一些方法,想像一个在你用AJAX方式成功提交后的reset:
$(document).ready(function() {// use this to reset a single form
$("#reset").click(function() {
$("form")[0].reset();
});
});
(注:这里作者将form的id也写成了form,源文件有<form id="form">,这是非常不好的写法,你可以将这个ID改成form1或者testForm,然后用$("#form1")或者$("#testForm")来表示它,再进行测试。)
上面这个代码选择了所有的"form"元素,并在其中的第一个上call了一个reset()。如果你有一个以上的form,你可以这样做:
$(document).ready(function() {// use this to reset several forms at once
$("#reset").click(function() {
$("form").each(function() {
this.reset();
});
});
});
(注:请注意一定要亲自将这些代码写在custom.js中并在starterkit.html上测试效果才能有所体会!必要时要观察starterkit.html的html代码)
这样你在点击Reset链接后,就选择了文档中所有的form元素,并对它们都执行了一次reset()。
还有一个你可能要面对的问题是不希望某些特定的元素被选择。jQuery 提供了filter() 和not() 方法来解决这个问题。 filter()以过滤表达式来减少不符合的被选择项, not()则用来取消所有符合过滤表达式的被选择项. 考虑一个无序的list,你想要选择所有的没有ul子元素的li元素。
$(document).ready(function() {$("li").not(":has(ul)").css("border", "1px solid black");//原文为$("li").not("[ul]").css("border", "1px solid black");
});
这个代码选择了所有的li元素,然后去除了有ul子元素的li元素。刷新浏览器后,所有的li元素都有了一个边框,只有ul子元素的那个li元素例外。
摘要:
接到一个站长反馈页面信息展示失败,拿到服务器权限开启调试一看,发现报错了,报错的地方是一个preg_replace_callback方法中Unable to call custom replacement function。而奇怪的是,其他系统其他地方的preg_replace_callback调用没有其他问题。后经过测试发现是callback写法问题造成,特此记文。
正文:
出现错误的代码调用,源代码书写如下:
然而,采用array的方式书写则又正常:
而同样的第一种写法,在用call_user_func_array的方法中也在这台服务器上出现同样的Unable to call constom function的问题,同样改成第二种方法即可。
看来第一种写法还是会有什么问题,还是第二种方法靠谱点
本文链接
Apache MySQL PHP Windows WAMP
1.易思EasySiteServer服务器集成环境 v1.0 (最快速,绿色 推荐)
http://www.ecisp.cn/download/EasySiteServer.rar
本软件集成了最新版的Apache服务器,Apache/2.0.58 (Win32)、PHP/5.2.11、MySQL 客户端版本: 5.0.51a、phpMyAdmin3.2.0.1、Zend Optimizer v3.3.3、Zend Debugger v5.2.6 所有配置已默认完成,绿色软件直接使用!说明:如果您无法启动本软件,请检查服务器是否占用80端口,如IIS!相关使用说明请查看帮助与支持有关本系统常见问题!
2. PHP Now (简易安装,会安装后台服务)
http://www.phpnow.org/
Win32 下绿色免费的 Apache + PHP + MySQL 环境套件包。
简易安装、快速搭建支持虚拟主机的 PHP 环境。附带 PnCp.cmd 控制面板,帮助你快速配置你的套件,使用非常方便。
PHPnow 是绿色的,解压后执行 Setup.cmd 初始化,即可得到一个 PHP + MySQL 环境。
然后就可以直接安装 Discuz!, PHPWind, DeDe, WordPress 等程序。
支持虚拟主机:便捷的虚拟主机管理
配置文件备份:放心地去尝试修改配置文件,乱了就还原配置
虚拟主机代理:可与 IIS 共存 (不同端口,泛解析代理)
插件支持:ASP.NET | JSP(寻找最佳解决)
3. WAMP server
http://www.wampserver.com/
WAMP5 该软件在你的系统上自动地安装Apache, PHP5, 和MySQL。该软件配以一个以系统托盘图标运行的服务管理器,以及一个插件,现在允许你的在同一个服务器上运行PHP4.3.9和PHP5.0.2。
4. 分别手动安装Apache MySQL PHP
应该掌握的方法,但一次就够了。
本文链接