一组简单的技能,可以帮助你提高jQuery技能。

马特史密斯推出的一个小项目有14个小技巧,Bole将继续跟进和更新。

回到顶部按钮

预加载的图片

检查图片是否加载。

自动修复受损图片

类开关悬停

禁用输入字段

停止链路负载

淡出/滑动开关

简单的折叠效果

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

打开新窗口中的外部链接

查找文本元素

切换可见和隐藏触发器

回到顶部按钮



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



Javascript


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


Javascript



回到顶部



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

预加载的图片



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



Javascript


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




检查图片是否加载。



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

Javascript


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




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

自动修复受损图片



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



Javascript


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



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

悬停状态切换



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

Javascript


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


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



Javascript


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






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

禁用输入字段



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



Javascript


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




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



Javascript




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




停止链路负载



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



Javascript




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


淡出/滑动开关



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

Javascript




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


简单的手风琴效果



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

Javascript


所有面板 /关闭
$(#手风琴)。发现(的内容)。隐藏();

手风琴
$(#手风琴)。找到('。手风琴头)。Click(function(){(){)
var = $(this);
Next.slideToggle('fast);
$(内容),(下),SlideUp('fast);
返回false;
});




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

使两个div高



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



Javascript


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




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

Javascript


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


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



Javascript


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




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

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

Javascript


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


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

通过文本查找元素

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



Javascript



无功搜索=美元(' #搜索')瓦迩();




$('div:(:(不包含+搜索+))')隐藏();


视觉的变化触发

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



Javascript


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




ajax调用的错误处理

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

Javascript


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




所有的程序员交流QQ群290551701,群从高级程序员,百度,Ali,Jingdong,小米,到哪里去,你饿了,我们作为程序员,有丰富的经验。加入我们,直接通信的技术,最好的学习环境,了解行业信息。如果你想强丹尼尔,然后加入,让丹尼尔带你的神!