jQuery 中如何將數(shù)組轉化為 JSON 字符串秕噪,然后再轉化回來钳降?
// 通過原生 JSON.stringify/JSON.parse 擴展 jQuery 實現(xiàn)
$.array2json = function(array) {
return JSON.stringify(array);
}
$.json2array = function(array) {
// $.parseJSON(array); // 3.0 開始,已過時
return JSON.parse(array);
}
// 調(diào)用
var json = $.array2json(['a', 'b', 'c']);
var array = $.json2array(json);
jQuery 一個對象可以同時綁定多個事件腌巾,這是如何實現(xiàn)的遂填?
$("#btn").on("mouseover mouseout", func);
$("#btn").on({
mouseover: func1,
mouseout: func2,
click: func3
});
jQuery 的隊列是如何實現(xiàn)的?隊列可以用在哪些地方澈蝙?
jQuery 核心中有一組隊列控制方法吓坚,由 queue()/dequeue()/clearQueue() 三個方法組成。
主要應用于 animate()灯荧,ajax礁击,其他要按時間順序執(zhí)行的事件中
var func1 = function(){alert('事件1');}
var func2 = function(){alert('事件2');}
var func3 = function(){alert('事件3');}
var func4 = function(){alert('事件4');}
// 入棧隊列事件
$('#box').queue("queue1", func1); // push func1 to queue1
$('#box').queue("queue1", func2); // push func2 to queue1
// 替換隊列事件
$('#box').queue("queue1", []); // delete queue1 with empty array
$('#box').queue("queue1", [func3, func4]); // replace queue1
// 獲取隊列事件(返回一個函數(shù)數(shù)組)
$('#box').queue("queue1"); // [func3(), func4()]
// 出棧隊列事件并執(zhí)行
$('#box').dequeue("queue1"); // return func3 and do func3
$('#box').dequeue("queue1"); // return func4 and do func4
// 清空整個隊列
$('#box').clearQueue("queue1"); // delete queue1 with clearQueue