一组简单的技能来帮助你提高jQuery技能。目前,小编辑器已经安排了14个jQuery技巧。



目录结构

1回到顶部按钮

2预加载的图片

3检查图片是否已完成。

4自动修复受损图片

在5hover类开关

6禁用输入字段

7停止链路加载

8淡出/滑/滑开关

9种简单的折叠效果

10将两个div设置为相同的高度

11打开新窗口中的外部链接

12查找文本元素

13开关可见和隐藏触发器

下面是每个小技巧的具体含义。

1。回到顶部按钮

利用动画和scrollTop方法在jQuery,你可以创建一个插件不需要顶级的动画的简单回归:


回到顶部
$('a.top)。Click(function(e){
E.preventDefault();
$(文档。体)。动画({ 0 },scrollTop:800);
});

回到顶部


改变的scrollTop到你想滚动条停止值。然后你要做的是,在800毫秒内回到顶端。

2。预加载的图片

如果您的页面使用了大量的图像,这些图像最初无法显示(例如,一定要悬停),那么预加载它们是非常有用的。


(美元。preloadimages =功能){
对于(var i = 0;i < arguments.length;i++){
$()。Attr('src,论点{我});
}
};
美元。preloadimages('img /悬停,PNG,'img /悬停了。png);


三.检查图片是否已完成

有时您可能需要检查图片是否完全加载,然后才能在脚本中跟踪脚本:


$('img)。负荷(函数(){)
console.log(图像加载成功);
});


你也可以检查是否一个特定的图片加载或不通过ID或类替换img标签。

4。自动修复受损图片

如果你在自己的网站上找到图片链接,那么替换是非常麻烦的:


$('img '),(错误,函数()){
$(这)。道具('src ','img /破碎。png);
});


即使您没有任何损坏的链接,添加此代码也不会有任何影响。

5上的类切换。

如果用户的鼠标悬停在网页上的一个可点击的元素,你想改变的元素的视觉效果,你可以使用下面的代码为元素添加一个类,当用户将鼠标悬停;当用户离开鼠标,删除类:


$('按钮')。Hover(function(){)
$(这)AddClass('hover);
}函数(){()
$(这)RemoveClass('hover);
});


你只需要增加所需的CSS。如果你需要一个更简单的方法,你也可以使用toggleclass方法:


$('按钮')。Hover(function(){)
$(这)ToggleClass('hover);
});


注意:CSS对于这个示例可能是一个更快的解决方案,但它仍然值得了解。

6。禁用输入字段

有时您可能希望使表单的提交按钮或文本输入框不可用,直到用户执行特定的行为(例如,确认我已经阅读了该子句的复选框)。将禁用属性添加到输入中,您就可以达到所需的效果:


($输入{类型=提交。道具)(禁止的,真的);


当您希望将禁用的值更改为false时,只需要在输入中再次运行该方法。


($输入{类型=提交。道具(禁止),假);


7。停止链路负载



有时您不想链接到页面或重新加载页面,并且想做其他事情,比如触发其他脚本:


$('a.no-link)。Click(function(e){
E.preventDefault();
});


8。淡出/滑动/滑动开关



淡入淡出和幻灯片的动画效果,我们经常使用jQuery。也许你只是想表明一个元素时,一些用户的点击,很高兴利用fadein和slideDown。但如果你想要的元素出现在第一次点击,点击第二消失,以下代码可以做的好:


淡入淡出
$('按钮')。Click(function(){)
$('元')FadeToggle(慢的);
});
切换
$('按钮')。Click(function(){)
$('元')SlideToggle(慢的);
});




9。简单的手风琴效果

这是一种实现快速手风琴效果的简单方法:


所有面板 /关闭
$(#手风琴)。发现(的内容)。隐藏();
手风琴
$(#手风琴)。找到('。手风琴头)。Click(function(){(){)
var = $(this);
Next.slideToggle('fast);
$(内容),(下),SlideUp('fast);
返回false;
});


添加此脚本后,您需要做的就是查看脚本是否在所需的HTML中正常工作。

10。做两个div

有时您可能希望两个div具有相同的高度,而不管它们的内容是什么。


(div。)。Css('min-height,$(div。主要)。Height());


这个例子是设置高度,意思是它可以比主div大,但从来没有更小。但是有一个更灵活的方法是通过一组B元素的集合,然后高度到元素中的最高值:


var = $(列);
var高度= 0;
columns.each美元(函数(){()
如果($(.)Height()>高度){
高度= $(这个)。Height();
}
});
columns.height美元(高度);


如果您希望所有的列具有相同的高度:


var = $(相同的高度列);
rows.each美元(函数(){()
$(this)。查找(列)高度($(this))Height());
});


11。在一个新的选项卡窗口中打开外部链接



打开新标签或新窗口中的外部链接,并确保站内的链接将在同一个标签或窗口中打开。


(${ href ^ =http。属性)('target','_blank);
$(a { href ^ = / / )。Attr('target','_blank);
$({ href ^ =+ window.location.origin +)。Attr('target','_self);


注:window.location.origin在IE 10中不可用,问题的修复方法。

12。通过文本查找元素



通过使用jQuery中的包含()选择器,您可以在某个元素中找到文本。如果文本不存在,元素将被隐藏:


无功搜索=美元(' #搜索')瓦迩();
$('div:(:(不包含+搜索+))')隐藏();


13。视觉的变化触发



当用户关注另一个标签或返回到标签时,trigger Javascript:


$(document),('visibilitychange功能(e){ {)
如果(e.target.visibilitystate =可见){
console.log('tab现在看来!;
否则如果}(e.target.visibilitystate =隐藏){
console.log('tab现在隐藏!;
}
});


ajax调用的错误处理

当Ajax调用返回404或500个错误时,将执行错误处理。但是,如果未定义此处理,其他jQuery代码可能停止工作:


$(document)。AjaxError(功能(E,XHR,设置错误){
console.log(错误);
});


14。链调用插件



jQuery支持链式调用插件来反复地降低查询DOM并创建多个jQuery对象:


$(#元素),表明();
$(#元素),Html('bla);
$(#元素)OtherStuff();


通过链操作可以大大提高上述代码。


$(#元素)
显示()
HTML('bla)。
otherstuff();


还有另一种方法来缓存变量中的元素(前缀为$):


var elem = $(美元的#元素);
elem.hide美元();
elem.html美元('bla);
elem.otherstuff美元();


jQuery中的链式操作和缓存方法大大减少了代码的速度。

以下是jQuery的三个缩写

简要描述如下:

对象的缩写



在过去,如果你想创建一个对象,你需要这个:


var =新对象();
car.colour =';
car.wheels = 4;
car.hubcaps = 'spinning;
car.age = 4;


下面的文字可以达到同样的效果:


var汽车{ { {
颜色:红',
轮子:4,
轮毂:'spinning,
年龄:4
}


这样容易得多,你不必反复使用对象的名称。

这样,汽车就被定义了。也许你会遇到invaliduserinsession问题,只是遇到你用IE。你只要记住,不要在右括号前面写分号,所以你不会有任何麻烦。

数组的缩写

定义数组的传统方法是:


无功moviesthatneedbetterwriters =新的数组(
变形金刚,'transformers2 ','avatar ','indiana琼斯4');


简短的版本是这样的:


无功moviesthatneedbetterwriters = {
变形金刚,'transformers2 ','avatar ','indiana琼斯4};


对于数组,有一个问题,但是没有图形组函数,但是你经常会找到像这样定义汽车的人,像这样。


新数组();
汽车'colour} = {';
{ } = 4车'wheels;
{ } = 'spinning车'hubcaps ' ';
{ } = 4车时代;


数组不是万能的,用这种方式写错误是令人困惑的。图形组实际上是对象的函数,人们混淆了这两个概念。

三元条件符号的缩写

另一种非常酷的速记方法是使用三元素条件符号。

你不必写以下内容。


VaR的方向;
如果(x<200){
方向= 1;
}
{其他
方向= 1;
}


可以使用三元素条件符号来简化它:




var方向= x 2001:- 1;




当条件为真时,取问号后面的值,或取冒号后面的值。