锋利的jQuery第2版学习笔记8~11章
第8章,用jQuery打造个性网站
网站结构
文件结构
编写CSS样式
第9章,jQuery Mobile
jQuery Mobile主要特性
其他框架
第10章,jQuery各个版本的变化
第11章,jQuery性能优化和技巧
jQuery性能优化
jQuery技巧
$(document).ready(function() {
$(document).bind("contextmenu",function(e) {
return false;
});
});
2、新窗口打开页面
$(document).ready(function() {
// ex 1 : href = "http://" 的超链接将会在新窗口打开链接
$('a[href^="http://"]').attr('target',"_blank"); // ex 2 : rel = "external" 的超链接将会在新窗口打开链接
$('a[rel$="external"]').click(function() {
this.target = "_blank";
});
});
<a href="http://www.cssrain.cn" rel="external">open link </a>
3、判断浏览器类型
$(document).ready(function() {
// Firefox2 and above
if($.browser.mozilla && $.browser.version >= "1.8"){
// do something
}
// Safari
if($.browser.safari){
// do something
} // Chrome
if($.browser.chrome){
// do something
} // Opera
if($.browser.opera){
// do something
} // IE6 and below
if($.browser.msie && $.browser.version <= 6){
// do something
} //anything above IE 6
if($.browser.msie && $.browser.version > 6){
// do something
}
});
4、输入框文字获取和失去焦点
$(document).ready(function() {
$("input.text1").val("Enter your search text here");
textFill($('input.text1'));
});
function textFill(input){ // input focus text function
var originalvalue = input.val();
input.focus(function() {
if($.trim(input.val()) == originalvalue){
input.val('');
}
}).blur(function() {
if($.trim(input.val()) == ""){
input.val(originalvalue);
}
});
}
5、返回头部滑动动画
jQuery.fn.scrollTo = function(speed) {
var targetOffset = $(this).offset().top;
$('html.body').stop().animate({scrollTop : targetOffset},speed);
return this;
};
// use
$("#goheader").click(function() {
$("body").scrollTo(500);
return false;
});
6、获取鼠标位置
$(document).ready(function() {
$(document).mousemove(funtion(e) {
$("#XY").html("X : " + e.pageX + " | Y : " + e.pageY);
});
});
7、判断元素是否存在
$(document).ready(function() {
if($('#id').length){
// do something
}
});
8、点击div也可跳转
$('div').click(function() {
window.location = $(this).find("a").attr("href");
return false;
});
9、根据浏览器大小添加不同样式
$(document).ready(function() {
function checkWindowSize() {
if($(window).width() > 1200){
$('body').addClass('large');
}else{
$('body').removeClass('large');
}
}
$(window).resize(checkWindowSize);
});
10、设置div在屏幕中央
$(document).ready(function() {
jQuery.fn.center = function() {
this.css("position","absolute");
this.css("top",($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");
this.css("left",($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");
return this;
} // use
$("#XY").center();
});
11、创建自己的选择器
$(document).ready(function() {
$.extend($.expr[':'],{
moreThen500px : function(a) {
return $(a).width() > 500;
}
});
$('.box:moreThen500px').click(function() {
// ...
});
});
12、关闭所有动画效果
$(document).ready(function() {
jQuery.fx.off = true;
});
13、检测鼠标右键和左键
$(document).ready(function() {
$('#XY').mousedown(function(e) {
alert(e.which); // 1 = 鼠标左键,2 = 鼠标中键,3 = 鼠标右键
});
});
14、回车提交表单
$(document).ready(function() {
$("input").keyup(function(e) {
if(e.which == 13){
alert("回车提交表单");
}
});
});
15、设置全局Ajax参数
$('#load').ajaxStart(function() {
showLoading(); // 显示loading
disableButtons(); // 禁用按钮
});
$('#load').ajaxComplete(function() {
hideLoading(); // 隐藏loading
enableButtons(); // 启用按钮
});
16、获取选中的下拉框
$('#someElement').find('option:selected');
$('#someElement option:selected');
17、切换复选框
var tog = false;
$('button').click(function() {
$('input[type=checkbox]').attr('checked',!tog);
tog = !tog;
});
18、使用siblings()选择同辈元素
// 不这样做
$('#nav li').click(function() {
$('#nav li').removeClass('active');
$(this).addClass('active');
});
// 替代做法
$('#nav li').click(function() {
$(this).addClass('active')
.siblings().removeClass('active');
});
19、个性化链接
$(document).ready(function() {
$("a[href$='pdf']").addClass("pdf");
$("a[href$='zip']").addClass("zip");
$("a[href$='psd']").addClass("psd");
});
20、在一段时间之后自动隐藏或关闭元素
// 这是1.3.2中我们使用setTimeout来实现的方式
setTimeout(function() {
$('div').fadeIn(400);
},3000);
// 而在1.4之后的版本可以使用delay()这一功能来实现的方式
$('div').slideUp(300).delay(3000).fadeIn(400);
21、使用Firefox或Firebug来记录事件日志
// $('#someDiv').log('div')
jQuery.log = jQuery.fn.log = function(msg) {
if(console){
console.log("%s : %o",msg,this);
}
return this;
};
22、为任何与选择器相匹配的元素绑定事件
// 为table里面的td元素绑定click事件,不管td元素是一直存在还是动态创建的
// jQuery 1.4.2之前使用的方式
$('table').each(function() {
$('td',this).live('click',function() {
$(this).toggleClass("hover");
});
});
// jQuery 1.4.2 使用方式
$('table').delegate('td','click',function() {
$(this).toggleClass('hover');
});
// jQuery 1.7.1使用方式
$('table').on('click','td',function() {
$(this).toggleClass('hover');
});
23、使用CSS钩子
<div id="panel" style="display:none">
<button>Colse</button>
</div>
执行下列代码
$('#panel').fadeIn(function() {
$('#panel button').click(function() {
$(this).fadeOut();
});
});
buton元素会消失,而不是panel元素消失,可以使用$.proxy()解决
$('#panel').fadeIn(function() {
// Using $.proxy()
$('#panel button').click($.proxy(function() {
// this指向 #panel
$(this).fadeOut();
},this));
});
25、限制Text-Area域中的字符个数
jQuery.fn.maxLength = function(max) {
this.each(function() {
var type = this.tagName.toLowerCase();
var inputType = this.type ? this.type.toLowerCase() : null;
if(type == "input" && inputType == "text" || inputType == "password"){
// 应用标准的maxLength
this.maxLength = max;
}else if(type == "textarea"){
this.onkeypress = function(e) {
var ob = e || event;
var keyCode = ob.keyCode;
var hasSelection = document.selection ? document.selection.createRange().text.length > 0 : this.selectionStart != this.selectionEnd;
return !(this.value.length >= max && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) &&
!ob.ctrlKey && !ob.altKey && !hasSelection);
};
this.onkeyup = function() {
if(this.value.length > max){
this.value = this.value.substring(0,max);
}
};
}
});
};
// use
$('#mytextarea').maxLength(10);
26、本地存储
localStorage.someData = "This is going to be saved";
27、解析json数据时报parseError错误
(function($) {
$.fn.stripHtml = function() {
var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
this.each(function() {
$(this).html($(this).html().replace(regexp,''));
});
return $(this);
}
})(jQuery);
// use
$('div').stripHtml();
锋利的jQuery第2版学习笔记8~11章的更多相关文章
- 锋利的jQuery第2版学习笔记1~3章
第1章,认识jQuery 注意:使用的jQuery版本为1.7.1 目前流行的JavaScript库 Prototype(http://www.prototypejs.org),成型早,面向对象的思想 ...
- 锋利的jQuery第2版学习笔记4、5章
第4章,jQuery中的事件和动画 注意:使用的jQuery版本为1.7.1 jQuery中的事件 JavaScript中通常使用window.onload方法,jQuery中使用$(document ...
- 锋利的jQuery第2版学习笔记6、7章
第6章,jQuery与Ajax的应用 Ajax的优势和不足 Ajax的优势 1.不需要插件支持 2.优秀的用户体验 3.提高Web程序的性能 4.减轻服务器和带宽的负担 Ajax的不足 1.浏览器对X ...
- 神经网络与机器学习第3版学习笔记-第1章 Rosenblatt感知器
神经网络与机器学习第3版学习笔记 -初学者的笔记,记录花时间思考的各种疑惑 本文主要阐述该书在数学推导上一笔带过的地方.参考学习,在流畅理解书本内容的同时,还能温顾学过的数学知识,达到事半功倍的效果. ...
- HTML5与CSS3基础教程第八版学习笔记7~10章
第七章,CSS构造块 CSS里有控制基本格式的属性(font-size,color),有控制布局的属性(position,float),还有决定访问者打印时在哪里换页的打印控制元素.CSS还有很多控制 ...
- HTML5与CSS3基础教程第八版学习笔记1~6章
第一章,网页的构造块 网页主要包括三个部分: 1.文本内容(纯文字) 2.对其他文件的引用:图像,音频,视频,样式表文件,js文件 3.标记:对文本内容进行描述并确保引用正确地工作 注:所有这些成分都 ...
- c#高级编程第七版 学习笔记 第三章 对象和类型
第三章 对象和类型 本章的内容: 类和结构的区别 类成员 按值和按引用传送参数 方法重载 构造函数和静态构造函数 只读字段 部分类 静态类 Object类,其他类型都从该类派生而来 3.1 类和结构 ...
- java JDK8 学习笔记——第11章 线程和并行API
第11章 线程与并行API 11.1 线程 11.1.1 线程 在java中,如果想在main()以外独立设计流程,可以撰写类操作java.lang.Runnable接口,流程的进入点是操作在run( ...
- <<Python基础教程>>学习笔记 | 第11章 | 文件和素材
打开文件 open(name[mode[,buffing]) name: 是强制选项,模式和缓冲是可选的 #假设文件不在.会报以下错误: >>> f = open(r'D:\text ...
随机推荐
- MON166 FAQ
MON166: SOFTWARE RESET USING THE MONITOR QUESTION What happens when debugging using MON166 and my pr ...
- jQuery性能优化的28个建议
我一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来.我也做了一个jQuery性能优化的简明样式表,你可 ...
- JSON初探
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...
- asp.net架构基础知识--页面以及全局事件
1.asp.net的请求过程,以及对应的处理请求的dll客户的请求页面由aspnet_isapi.dll这个动态连接库来处理,把请求的aspx文件发送给CLR进行编译执行,然后把Html流返回给浏览器 ...
- 使用Url.Routeurl获取url值。
1,获取url值. public ActionResult About() { RouteValueDictionary RVD = new Ro ...
- 使用ASP.NET操作IIS7中使用应用程序
使用ASP.NET操作IIS7中使用应用程序 在最新发布的启明星Portal里,增加了安装程序,下面说一下.NET对IIS7操作.IIS7的操作和IIS5/6有很大的不同,在IIS7里增加了 Mi ...
- Swift基础使用方法(Swift开发之中的一个)
昨晚苹果公布了新一代编程语言Swift,官方提供了一个iBook的说明文档.有须要的能够看下.地址:mt=11" target="_blank">https://i ...
- because it is not a variable 编译错误解决方案
1,将Stuct换为class 2,使用中间变量, 如Point p=new Point(x,y); this.Location=p; 而不能直接给struct赋值,因为值类型是不能改变的,必须生成新 ...
- [022]c++虚函数、多态性与虚表
原文出处:http://my.oschina.net/hnuweiwei/blog/280894 目录[-] 多态 虚函数 纯虚函数 虚表 一般继承(无虚函数覆盖) 一般继承(有虚函数覆盖) 多重继承 ...
- 基于css3的文字3D翻转特效
一款基于css3的文字3D翻转特效.这款特效当鼠标经过文字的时候3D翻转显示阴影.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="compo ...