- 1. 规则 && 格式
- 2. jQ 如何解决事件冒泡
- 3. jQuey 的 Ajax()
- 4. 常用的 JQ 代码段
- 4.1. 1. 禁用页面的右键菜单
- 4.2. 2. 新窗口的开页面
- 4.3. 3. 判断浏览器类型
- 4.4. 4. 输入框文字获取焦点
- 4.5. 5. 返回头部滑动动画
- 4.6. 6. 获取鼠标位置
- 4.7. 7. 判断元素是否存在
- 4.8. 8. 点击 div 也可以跳转
- 4.9. 9. 根据浏览器大小添加样式
- 4.10. 10. 设置 div 在屏幕中央
- 4.11. 11. 创建自己的选择器
- 4.12. 12. 关闭所有动画效果
- 4.13. 13. 检测鼠标的左右键
- 4.14. 14. 回车提交表单
- 4.15. 15. 设置全局 ajax 参数
- 4.16. 16. 获取选中的下拉框
- 4.17. 17. 切换复选框
- 4.18. 18. 使用 siblings() 来选择同辈元素
- 4.19. 19. 个性化链接
- 4.20. 20. 一段时间后自动关闭或者隐藏元素
jQuery的使用心得
本文大部分都在参考 《锋利的jQuery》 一书,几乎可以说是读书笔记
规则 && 格式
- 对于同一个对象不超过三个操作直接一行显示;
- 对于同一个对象的较多操作,每个操作一行;
//例子 $(this).removerClass('add') .addClass('remove')
- 对于多个对象的少量操作,每个对象一行,其中涉及子元素的可做缩进处理;
//例子 $(this).addClass('add') .childe.show(). siblings().removerClass('remove')
- 如果获取 JQ 对象,在变量前面加上
$
符号var $var = $(this)
- 如果获取的 DOM 对象,则不需要
var v = $(this)[0]
- JQ 对象和 DOM 对象之间的转换
//1.[index]方法 var $cr = $('#cr') var cr = $cr[0]
//2.get(index)方法
var $cr = $(‘#cr’)
var cr = $cr.get(0)
7. $('className Or ID') 获取的永远是对象,即便网页上没有,即当 jQ 检索某个元素是否存在时候,需根据长度或转化为 dom 对象来判断对象是否存在
```JavaScript
if($('#tt')){//do something} X
if($('#tt').length > 0){//do somthing} ✓
jQ 如何解决事件冒泡
在 jQ.1.7 中,on()
是首选绑定事件,
$(document).on('click','.btn',function(){
event.preventDefault();
//do somthing
})
on()
与 bind()
的区别
on()
绑定的对象可以是动态生成的,而 bind()
绑定的对象必须是事先存在的
阻止冒泡行为
// 如果事件可取消,则取消该事件,而不停止事件的进一步传播
event.preventDefault();
// 直接阻止默认行为
event.stopPropagation();
//同时对时间对象停止冒泡和默认行为,在事件处理函数中返回 false
$('element').click(function () {
//do somthing
return false
})
jQuey 的 Ajax()
解析
$.ajax({
url: '', // 接口地址
type: '',//请求方式
dataType: '',//获取格式
data: {param: 'value'},//请求参数
})
.done(function() {
//链接获取成功
console.log("success");
})
.fail(function() {
//链接获取失败
console.log("error");
})
.always(function() {
//无论失败或者成功
console.log("complete");
});
//post 快速请求
$.post(url, {param: 'value'}, function(data, textStatus, xhr) {},'type');
//get 快速请求
$.get(url, function(data) {},'type');
$.ajax()
,$.post()
,$.get()
都是 jQuery 中的全局函数
$.ajaxSetup() 设置默认值
为以后要用到的Ajax请求设置默认的值,使用 名称/值
对来规定 AJAX 请求的设置。
$.ajaxSetup({
url:'url',
dataType:post,
})
常用的 JQ 代码段
1. 禁用页面的右键菜单
$(document).ready(function(){
$(document).bind("contextmenu", function(){
return false
})
})
2. 新窗口的开页面
$(document).ready(function() {
//1.
$('a[href^="http://"]').attr("target", "_blank")
//2.
$('a[re]$="external"').click(function(){
this.target = "_blank"
})
})
3. 判断浏览器类型
PS:JQ1.3 后,官方贵贱使用$.supper 来代替 $.browser
$(document).ready(function() {
//firefox 2 and above
if($.browse.mozilla && $.browser.version >="1.8") {
//do something
}
//safari
if($.browse.safari) {
//do something
}
// chorme
if($.browse.chrome) {
//do something
}
// opera
if($.browse.opera) {
//do something
}
//ie7 and below
if($.browser.msie && $.browser.version <= 6){
//do something
}
//ie6 and anything
if($.browser.msie && $.browser.version >6) {
//do something
}
})
4. 输入框文字获取焦点
$(document).ready(function() {
$('input.text').val('点击回车即可搜索')
textFill($('input.text'))
})
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
}
$('#button').click(function(){
$('body').scrollTo(500)
return false
})
6. 获取鼠标位置
$(document).ready(function() {
$(document).mousemove(function(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('add')
} else {
$('body').removeClass('add')
}
}
})
$(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')
}
$('#xy').center()
})
11. 创建自己的选择器
$(document).ready(function () {
$.extend($.expr[':'], {
moreThen500px: function(a) {
return $(a).width() > 500;
}
});
$('.box:moreThen500px').click(function () {
//do
})
})
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('ok')
}
})
})
15. 设置全局 ajax 参数
$('#load').ajaxStart(function(){
showLoading();
disableButtons();
});
$('#load').ajaxCompleta(function(){
hideLoading();
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(){
$(this).addClass('active')
.siblings().removeClass('active')
})
19. 个性化链接
$(document).ready(function(){
$('a[href$=pdf]').addClass('pdf')
})
20. 一段时间后自动关闭或者隐藏元素
setTimeout(function() {
$('div').fadeIn(400)
}, 3000)