本篇用于記錄日常編程技巧角撞,以供日后查詢
Created by RuiLin
2017/12/10
-
jQuery 遍歷對象屬性
??each() 方法為每個(gè)匹配元素執(zhí)行指定函數(shù),返回 false 可用于及早停止循環(huán)。
eg:
//index:當(dāng)前元素的index值 val:當(dāng)前元素值可用【即$(this)值】
$("li").each(function(index,val){
alert($(this).text())
});
//遍歷對象屬性
(function($){
test();
var testObj={};
function test(){
$.each(testObj,function(key,val){
console.log('key'+key+'val'+val);
})
}
})(jQuery)
//原生js方法
for(var key in testObj){
console.log('key'+key+'val'+testObj[key]);
}
-
jQuery常用插件開發(fā)模式之 $.extend() 合并defaults對象與options對象
(function($){
function test(options){
var defaults={
validate: false, limit: 5, name: "foo"
}
/*合并默認(rèn)值和選項(xiàng)荒揣,不修改默認(rèn)對象走哺。*/
var settings = $.extend({},defaults, options);
}
test({
validate: true,
name: "bar"
})
})(jQuery)
-
防抖:防止事件頻繁觸發(fā)
/**
* 【防抖】 防止事件連續(xù)觸發(fā)
* @param func :將要執(zhí)行的方法
* @param wait :事件觸發(fā)后箫锤,多久執(zhí)行
* @param immediate:是否需要立即執(zhí)行
*/
function debounce(func, wait, immediate) {
var timeout, result;
return function() {
var self = this;
var argu = arguments;
clearTimeout(timeout);
if(immediate) {
var callNow = !timeout;
timeout = setTimeout(function() {
timeout = null;
}, wait)
if(callNow) {
func.call(self, argu);
}
} else {
timeout = setTimeout(function() {
result = func.call(self, argu);
}, wait);
}
}
}
function test(argu) {
console.log(this);
console.log(argu[0].type);
}
$(function() {
$("#js-test").click(debounce(test, 1000, true));
})