国产亚洲精品久久久久动-影视先锋中文字幕-av网站在线观看一区-亚洲视频 在线观看-久久亚洲不卡-欧美精品一区在线观看-欧美乱淫视频-欧美熟妇另类久久久久久不卡-粉嫩av一区二区三区四区五区-日韩欧美操

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Backbone.js源码解读(转载)

發(fā)布時間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Backbone.js源码解读(转载) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言: 個人也翻譯過一遍,可是基礎(chǔ)知識不夠,所以理解的沒有很清楚 // Backbone.js 0.9.2// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc. // Backbone may be freely distributed under the MIT license. // For all details and documentation: // http://backbonejs.org (function () {// 創(chuàng)建一個全局對象, 在瀏覽器中表示為window對象, 在Node.js中表示global對象 var root = this;// 保存"Backbone"變量被覆蓋之前的值 // 如果出現(xiàn)命名沖突或考慮到規(guī)范, 可通過Backbone.noConflict()方法恢復該變量被Backbone占用之前的值, 并返回Backbone對象以便重新命名 var previousBackbone = root.Backbone;// 將Array.prototype中的slice和splice方法緩存到局部變量以供調(diào)用 var slice = Array.prototype.slice; var splice = Array.prototype.splice;var Backbone; if (typeof exports !== 'undefined') { Backbone = exports; } else { Backbone = root.Backbone = {}; }// 定義Backbone版本 Backbone.VERSION = '0.9.2';// 在服務器環(huán)境下自動導入Underscore, 在Backbone中部分方法依賴或繼承自Underscore var _ = root._; if (!_ && (typeof require !== 'undefined')) _ = require('underscore');// 定義第三方庫為統(tǒng)一的變量"$", 用于在視圖(View), 事件處理和與服務器數(shù)據(jù)同步(sync)時調(diào)用庫中的方法 // 支持的庫包括jQuery, Zepto等, 它們語法相同, 但Zepto更適用移動開發(fā), 它主要針對Webkit內(nèi)核瀏覽器 // 也可以通過自定義一個與jQuery語法相似的自定義庫, 供Backbone使用(有時我們可能需要一個比jQuery, Zepto更輕巧的自定義版本) // 這里定義的"$"是局部變量, 因此不會影響在Backbone框架之外第三方庫的正常使用 var $ = root.jQuery || root.Zepto || root.ender;// 手動設(shè)置第三方庫 // 如果在導入了Backbone之前并沒有導入第三方庫, 可以通過setDomLibrary方法設(shè)置"$"局部變量 // setDomLibrary方法也常用于在Backbone中動態(tài)導入自定義庫 Backbone.setDomLibrary = function (lib) { $ = lib; }; // 放棄以"Backbone"命名框架, 并返回Backbone對象, 一般用于避免命名沖突或規(guī)范命名方式 // 例如: // var bk = Backbone.noConflict(); // 取消"Backbone"命名, 并將Backbone對象存放于bk變量中 // console.log(Backbone); // 該變量已經(jīng)無法再訪問Backbone對象, 而恢復為Backbone定義前的值 // var MyBackbone = bk; // 而bk存儲了Backbone對象, 我們將它重命名為MyBackbone Backbone.noConflict = function () { root.Backbone = previousBackbone; return this; }; // 對于不支持REST方式的瀏覽器, 可以設(shè)置Backbone.emulateHTTP = true // 與服務器請求將以POST方式發(fā)送, 并在數(shù)據(jù)中加入_method參數(shù)標識操作名稱, 同時也將發(fā)送X-HTTP-Method-Override頭信息 Backbone.emulateHTTP = false;// 對于不支持application/json編碼的瀏覽器, 可以設(shè)置Backbone.emulateJSON = true; // 將請求類型設(shè)置為application/x-www-form-urlencoded, 并將數(shù)據(jù)放置在model參數(shù)中實現(xiàn)兼容 Backbone.emulateJSON = false;// Backbone.Events 自定義事件相關(guān) // -----------------// eventSplitter指定處理多個事件時, 事件名稱的解析規(guī)則 var eventSplitter = /\s+/;// 自定義事件管理器 // 通過在對象中綁定Events相關(guān)方法, 允許向?qū)ο筇砑? 刪除和觸發(fā)自定義事件 var Events = Backbone.Events = {// 將自定義事件(events)和回調(diào)函數(shù)(callback)綁定到當前對象 // 回調(diào)函數(shù)中的上下文對象為指定的context, 如果沒有設(shè)置context則上下文對象默認為當前綁定事件的對象 // 該方法類似與DOM Level2中的addEventListener方法 // events允許指定多個事件名稱, 通過空白字符進行分隔(如空格, 制表符等) // 當事件名稱為"all"時, 在調(diào)用trigger方法觸發(fā)任何事件時, 均會調(diào)用"all"事件中綁定的所有回調(diào)函數(shù) on: function (events, callback, context) { // 定義一些函數(shù)中使用到的局部變量 var calls, event, node, tail, list; // 必須設(shè)置callback回調(diào)函數(shù) if (!callback) return this; // 通過eventSplitter對事件名稱進行解析, 使用split將多個事件名拆分為一個數(shù)組 // 一般使用空白字符指定多個事件名稱 events = events.split(eventSplitter); // calls記錄了當前對象中已綁定的事件與回調(diào)函數(shù)列表 calls = this._callbacks || (this._callbacks = {});// 循環(huán)事件名列表, 從頭至尾依次將事件名存放至event變量 while (event = events.shift()) { // 獲取已經(jīng)綁定event事件的回調(diào)函數(shù) // list存儲單個事件名中綁定的callback回調(diào)函數(shù)列表 // 函數(shù)列表并沒有通過數(shù)組方式存儲, 而是通過多個對象的next屬性進行依次關(guān)聯(lián) /** 數(shù)據(jù)格式如: * { * tail: {Object}, * next: { * callback: {Function}, * context: {Object}, * next: { * callback: {Function}, * context: {Object}, * next: {Object} * } * } * } */ // 列表每一層next對象存儲了一次回調(diào)事件相關(guān)信息(函數(shù)體, 上下文和下一次回調(diào)事件) // 事件列表最頂層存儲了一個tail對象, 它存儲了最后一次綁定回調(diào)事件的標識(與最后一次回調(diào)事件的next指向同一個對象) // 通過tail標識, 可以在遍歷回調(diào)列表時得知已經(jīng)到達最后一個回調(diào)函數(shù) list = calls[event]; // node變量用于記錄本次回調(diào)函數(shù)的相關(guān)信息 // tail只存儲最后一次綁定回調(diào)函數(shù)的標識 // 因此如果之前已經(jīng)綁定過回調(diào)函數(shù), 則將之前的tail指定給node作為一個對象使用, 然后創(chuàng)建一個新的對象標識給tail // 這里之所以要將本次回調(diào)事件添加到上一次回調(diào)的tail對象, 是為了讓回調(diào)函數(shù)列表的對象層次關(guān)系按照綁定順序排列(最新綁定的事件將被放到最底層) node = list ? list.tail : {}; node.next = tail = {}; // 記錄本次回調(diào)的函數(shù)體及上下文信息 node.context = context; node.callback = callback; // 重新組裝當前事件的回調(diào)列表, 列表中已經(jīng)加入了本次回調(diào)事件 calls[event] = { tail: tail, next: list ? list.next : node }; } // 返回當前對象, 方便進行方法鏈調(diào)用 return this; }, // 移除對象中已綁定的事件或回調(diào)函數(shù), 可以通過events, callback和context對需要刪除的事件或回調(diào)函數(shù)進行過濾 // - 如果context為空, 則移除所有的callback指定的函數(shù) // - 如果callback為空, 則移除事件中所有的回調(diào)函數(shù) // - 如果events為空, 但指定了callback或context, 則移除callback或context指定的回調(diào)函數(shù)(不區(qū)分事件名稱) // - 如果沒有傳遞任何參數(shù), 則移除對象中綁定的所有事件和回調(diào)函數(shù) off: function (events, callback, context) { var event, calls, node, tail, cb, ctx;// No events, or removing *all* events. // 當前對象沒有綁定任何事件 if (!(calls = this._callbacks)) return; // 如果沒有指定任何參數(shù), 則移除所有事件和回調(diào)函數(shù)(刪除_callbacks屬性) if (!(events || callback || context)) { delete this._callbacks; return this; }// 解析需要移除的事件列表 // - 如果指定了events, 則按照eventSplitter對事件名進行解析 // - 如果沒有指定events, 則解析已綁定所有事件的名稱列表 events = events ? events.split(eventSplitter) : _.keys(calls);// 循環(huán)事件名列表 while (event = events.shift()) { // 將當前事件對象從列表中移除, 并緩存到node變量中 node = calls[event]; delete calls[event]; // 如果不存在當前事件對象(或沒有指定移除過濾條件, 則認為將移除當前事件及所有回調(diào)函數(shù)), 則終止此次操作(事件對象在上一步已經(jīng)移除) if (!node || !(callback || context)) continue; // Create a new list, omitting the indicated callbacks. // 根據(jù)回調(diào)函數(shù)或上下文過濾條件, 組裝一個新的事件對象并重新綁定 tail = node.tail; // 遍歷事件中的所有回調(diào)對象 while ((node = node.next) !== tail) { cb = node.callback; ctx = node.context; // 根據(jù)參數(shù)中的回調(diào)函數(shù)和上下文, 對回調(diào)函數(shù)進行過濾, 將不符合過濾條件的回調(diào)函數(shù)重新綁定到事件中(因為事件中的所有回調(diào)函數(shù)在上面已經(jīng)被移除) if ((callback && cb !== callback) || (context && ctx !== context)) { this.on(event, cb, ctx); } } }return this; }, // 觸發(fā)已經(jīng)定義的一個或多個事件, 依次執(zhí)行綁定的回調(diào)函數(shù)列表 trigger: function (events) { var event, node, calls, tail, args, all, rest; // 當前對象沒有綁定任何事件 if (!(calls = this._callbacks)) return this; // 獲取回調(diào)函數(shù)列表中綁定的"all"事件列表 all = calls.all; // 將需要觸發(fā)的事件名稱, 按照eventSplitter規(guī)則解析為一個數(shù)組 events = events.split(eventSplitter); // 將trigger從第2個之后的參數(shù), 記錄到rest變量, 將依次傳遞給回調(diào)函數(shù) rest = slice.call(arguments, 1);// 循環(huán)需要觸發(fā)的事件列表 while (event = events.shift()) { // 此處的node變量記錄了當前事件的所有回調(diào)函數(shù)列表 if (node = calls[event]) { // tail變量記錄最后一次綁定事件的對象標識 tail = node.tail; // node變量的值, 按照事件的綁定順序, 被依次賦值為綁定的單個回調(diào)事件對象 // 最后一次綁定的事件next屬性, 與tail引用同一個對象, 以此作為是否到達列表末尾的判斷依據(jù) while ((node = node.next) !== tail) { // 執(zhí)行所有綁定的事件, 并將調(diào)用trigger時的參數(shù)傳遞給回調(diào)函數(shù) node.callback.apply(node.context || this, rest); } } // 變量all記錄了綁定時的"all"事件, 即在調(diào)用任何事件時, "all"事件中的回調(diào)函數(shù)均會被執(zhí)行 // - "all"事件中的回調(diào)函數(shù)無論綁定順序如何, 都會在當前事件的回調(diào)函數(shù)列表全部執(zhí)行完畢后再依次執(zhí)行 // - "all"事件應該在觸發(fā)普通事件時被自動調(diào)用, 如果強制觸發(fā)"all"事件, 事件中的回調(diào)函數(shù)將被執(zhí)行兩次 if (node = all) { tail = node.tail; // 與調(diào)用普通事件的回調(diào)函數(shù)不同之處在于, all事件會將當前調(diào)用的事件名作為第一個參數(shù)傳遞給回調(diào)函數(shù) args = [event].concat(rest); // 遍歷并執(zhí)行"all"事件中的回調(diào)函數(shù)列表 while ((node = node.next) !== tail) { node.callback.apply(node.context || this, args); } } }return this; } };// 綁定事件與釋放事件的別名, 也為了同時兼容Backbone以前的版本 Events.bind = Events.on; Events.unbind = Events.off;// Backbone.Model 數(shù)據(jù)對象模型 // --------------// Model是Backbone中所有數(shù)據(jù)對象模型的基類, 用于創(chuàng)建一個數(shù)據(jù)模型 // @param {Object} attributes 指定創(chuàng)建模型時的初始化數(shù)據(jù) // @param {Object} options /** * @format options * { * parse: {Boolean}, * collection: {Collection} * } */ var Model = Backbone.Model = function (attributes, options) { // defaults變量用于存儲模型的默認數(shù)據(jù) var defaults; // 如果沒有指定attributes參數(shù), 則設(shè)置attributes為空對象 attributes || (attributes = {}); // 設(shè)置attributes默認數(shù)據(jù)的解析方法, 例如默認數(shù)據(jù)是從服務器獲取(或原始數(shù)據(jù)是XML格式), 為了兼容set方法所需的數(shù)據(jù)格式, 可使用parse方法進行解析 if (options && options.parse) attributes = this.parse(attributes); if (defaults = getValue(this, 'defaults')) { // 如果Model在定義時設(shè)置了defaults默認數(shù)據(jù), 則初始化數(shù)據(jù)使用defaults與attributes參數(shù)合并后的數(shù)據(jù)(attributes中的數(shù)據(jù)會覆蓋defaults中的同名數(shù)據(jù)) attributes = _.extend({}, defaults, attributes); } // 顯式指定模型所屬的Collection對象(在調(diào)用Collection的add, push等將模型添加到集合中的方法時, 會自動設(shè)置模型所屬的Collection對象) if (options && options.collection) this.collection = options.collection; // attributes屬性存儲了當前模型的JSON對象化數(shù)據(jù), 創(chuàng)建模型時默認為空 this.attributes = {}; // 定義_escapedAttributes緩存對象, 它將緩存通過escape方法處理過的數(shù)據(jù) this._escapedAttributes = {}; // 為每一個模型配置一個唯一標識 this.cid = _.uniqueId('c'); // 定義一系列用于記錄數(shù)據(jù)狀態(tài)的對象, 具體含義請參考對象定義時的注釋 this.changed = {}; this._silent = {}; this._pending = {}; // 創(chuàng)建實例時設(shè)置初始化數(shù)據(jù), 首次設(shè)置使用silent參數(shù), 不會觸發(fā)change事件 this.set(attributes, { silent: true }); // 上面已經(jīng)設(shè)置了初始化數(shù)據(jù), changed, _silent, _pending對象的狀態(tài)可能已經(jīng)發(fā)生變化, 這里重新進行初始化 this.changed = {}; this._silent = {}; this._pending = {}; // _previousAttributes變量存儲模型數(shù)據(jù)的一個副本 // 用于在change事件中獲取模型數(shù)據(jù)被改變之前的狀態(tài), 可通過previous或previousAttributes方法獲取上一個狀態(tài)的數(shù)據(jù) this._previousAttributes = _.clone(this.attributes); // 調(diào)用initialize初始化方法 this.initialize.apply(this, arguments); }; // 使用extend方法為Model原型定義一系列屬性和方法 _.extend(Model.prototype, Events, {// changed屬性記錄了每次調(diào)用set方法時, 被改變數(shù)據(jù)的key集合 changed: null,// // 當指定silent屬性時, 不會觸發(fā)change事件, 被改變的數(shù)據(jù)會記錄下來, 直到下一次觸發(fā)change事件 // _silent屬性用來記錄使用silent時的被改變的數(shù)據(jù) _silent: null,_pending: null,// 每個模型的唯一標識屬性(默認為"id", 通過修改idAttribute可自定義id屬性名) // 如果在設(shè)置數(shù)據(jù)時包含了id屬性, 則id將會覆蓋模型的id // id用于在Collection集合中查找和標識模型, 與后臺接口通信時也會以id作為一條記錄的標識 idAttribute: 'id',// 模型初始化方法, 在模型被構(gòu)造結(jié)束后自動調(diào)用 initialize: function () {}, // 返回當前模型中數(shù)據(jù)的一個副本(JSON對象格式) toJSON: function (options) { return _.clone(this.attributes); }, // 根據(jù)attr屬性名, 獲取模型中的數(shù)據(jù)值 get: function (attr) { return this.attributes[attr]; }, // 根據(jù)attr屬性名, 獲取模型中的數(shù)據(jù)值, 數(shù)據(jù)值包含的HTML特殊字符將被轉(zhuǎn)換為HTML實體, 包含 & < > " ' \ // 通過 _.escape方法實現(xiàn) escape: function (attr) { var html; // 從_escapedAttributes緩存對象中查找數(shù)據(jù), 如果數(shù)據(jù)已經(jīng)被緩存則直接返回 if (html = this._escapedAttributes[attr]) return html; // _escapedAttributes緩存對象中沒有找到數(shù)據(jù) // 則先從模型中獲取數(shù)據(jù) var val = this.get(attr); // 將數(shù)據(jù)中的HTML使用 _.escape方法轉(zhuǎn)換為實體, 并緩存到_escapedAttributes對象, 便于下次直接獲取 return this._escapedAttributes[attr] = _.escape(val == null ? '' : '' + val); }, // 檢查模型中是否存在某個屬性, 當該屬性的值被轉(zhuǎn)換為Boolean類型后值為false, 則認為不存在 // 如果值為false, null, undefined, 0, NaN, 或空字符串時, 均會被轉(zhuǎn)換為false has: function (attr) { return this.get(attr) != null; }, // 設(shè)置模型中的數(shù)據(jù), 如果key值不存在, 則作為新的屬性添加到模型, 如果key值已經(jīng)存在, 則修改為新的值 set: function (key, value, options) { // attrs變量中記錄需要設(shè)置的數(shù)據(jù)對象 var attrs, attr, val;// 參數(shù)形式允許key-value對象形式, 或通過key, value兩個參數(shù)進行單獨設(shè)置 // 如果key是一個對象, 則認定為使用對象形式設(shè)置, 第二個參數(shù)將被視為options參數(shù) if (_.isObject(key) || key == null) { attrs = key; options = value; } else { // 通過key, value兩個參數(shù)單獨設(shè)置, 將數(shù)據(jù)放到attrs對象中方便統(tǒng)一處理 attrs = {}; attrs[key] = value; }// options配置項必須是一個對象, 如果沒有設(shè)置options則默認值為一個空對象 options || (options = {}); // 沒有設(shè)置參數(shù)時不執(zhí)行任何動作 if (!attrs) return this; // 如果被設(shè)置的數(shù)據(jù)對象屬于Model類的一個實例, 則將Model對象的attributes數(shù)據(jù)對象賦給attrs // 一般在復制一個Model對象的數(shù)據(jù)到另一個Model對象時, 會執(zhí)行該動作 if (attrs instanceof Model) attrs = attrs.attributes; // 如果options配置對象中設(shè)置了unset屬性, 則將attrs數(shù)據(jù)對象中的所有屬性重置為undefined // 一般在復制一個Model對象的數(shù)據(jù)到另一個Model對象時, 但僅僅需要復制Model中的數(shù)據(jù)而不需要復制值時執(zhí)行該操作 if (options.unset) for (attr in attrs) attrs[attr] = void 0;// 對當前數(shù)據(jù)進行驗證, 如果驗證未通過則停止執(zhí)行 if (!this._validate(attrs, options)) return false;// 如果設(shè)置的id屬性名被包含在數(shù)據(jù)集合中, 則將id覆蓋到模型的id屬性 // 這是為了確保在自定義id屬性名后, 訪問模型的id屬性時, 也能正確訪問到id if (this.idAttribute in attrs) this.id = attrs[this.idAttribute];var changes = options.changes = {}; // now記錄當前模型中的數(shù)據(jù)對象 var now = this.attributes; // escaped記錄當前模型中通過escape緩存過的數(shù)據(jù) var escaped = this._escapedAttributes; // prev記錄模型中數(shù)據(jù)被改變之前的值 var prev = this._previousAttributes || {};// 遍歷需要設(shè)置的數(shù)據(jù)對象 for (attr in attrs) { // attr存儲當前屬性名稱, val存儲當前屬性的值 val = attrs[attr];// 如果當前數(shù)據(jù)在模型中不存在, 或已經(jīng)發(fā)生變化, 或在options中指定了unset屬性刪除, 則刪除該數(shù)據(jù)被換存在_escapedAttributes中的數(shù)據(jù) if (!_.isEqual(now[attr], val) || (options.unset && _.has(now, attr))) { // 僅刪除通過escape緩存過的數(shù)據(jù), 這是為了保證緩存中的數(shù)據(jù)與模型中的真實數(shù)據(jù)保持同步 delete escaped[attr]; // 如果指定了silent屬性, 則此次set方法調(diào)用不會觸發(fā)change事件, 因此將被改變的數(shù)據(jù)記錄到_silent屬性中, 便于下一次觸發(fā)change事件時, 通知事件監(jiān)聽函數(shù)此數(shù)據(jù)已經(jīng)改變 // 如果沒有指定silent屬性, 則直接設(shè)置changes屬性中當前數(shù)據(jù)為已改變狀態(tài) (options.silent ? this._silent : changes)[attr] = true; }// 如果在options中設(shè)置了unset, 則從模型中刪除該數(shù)據(jù)(包括key) // 如果沒有指定unset屬性, 則認為將新增或修改數(shù)據(jù), 向模型的數(shù)據(jù)對象中加入新的數(shù)據(jù) options.unset ? delete now[attr] : now[attr] = val;// 如果模型中的數(shù)據(jù)與新的數(shù)據(jù)不一致, 則表示該數(shù)據(jù)已發(fā)生變化 if (!_.isEqual(prev[attr], val) || (_.has(now, attr) != _.has(prev, attr))) { // 在changed屬性中記錄當前屬性已經(jīng)發(fā)生變化的狀態(tài) this.changed[attr] = val; if (!options.silent) this._pending[attr] = true; } else { // 如果數(shù)據(jù)沒有發(fā)生變化, 則從changed屬性中移除已變化狀態(tài) delete this.changed[attr]; delete this._pending[attr]; } }// 調(diào)用change方法, 將觸發(fā)change事件綁定的函數(shù) if (!options.silent) this.change(options); return this; }, // 從當前模型中刪除指定的數(shù)據(jù)(屬性也將被同時刪除) unset: function (attr, options) { (options || (options = {})).unset = true; // 通過options.unset配置項告知set方法進行刪除操作 return this.set(attr, null, options); }, // 清除當前模型中的所有數(shù)據(jù)和屬性 clear: function (options) { (options || (options = {})).unset = true; // 克隆一個當前模型的屬性副本, 并通過options.unset配置項告知set方法執(zhí)行刪除操作 return this.set(_.clone(this.attributes), options); }, // 從服務器獲取默認的模型數(shù)據(jù), 獲取數(shù)據(jù)后使用set方法將數(shù)據(jù)填充到模型, 因此如果獲取到的數(shù)據(jù)與當前模型中的數(shù)據(jù)不一致, 將會觸發(fā)change事件 fetch: function (options) { // 確保options是一個新的對象, 隨后將改變options中的屬性 options = options ? _.clone(options) : {}; var model = this; // 在options中可以指定獲取數(shù)據(jù)成功后的自定義回調(diào)函數(shù) var success = options.success; // 當獲取數(shù)據(jù)成功后填充數(shù)據(jù)并調(diào)用自定義成功回調(diào)函數(shù) options.success = function (resp, status, xhr) { // 通過parse方法將服務器返回的數(shù)據(jù)進行轉(zhuǎn)換 // 通過set方法將轉(zhuǎn)換后的數(shù)據(jù)填充到模型中, 因此可能會觸發(fā)change事件(當數(shù)據(jù)發(fā)生變化時) // 如果填充數(shù)據(jù)時驗證失敗, 則不會調(diào)用自定義success回調(diào)函數(shù) if (!model.set(model.parse(resp, xhr), options)) return false; // 調(diào)用自定義的success回調(diào)函數(shù) if (success) success(model, resp); }; // 請求發(fā)生錯誤時通過wrapError處理error事件 options.error = Backbone.wrapError(options.error, model, options); // 調(diào)用sync方法從服務器獲取數(shù)據(jù) return (this.sync || Backbone.sync).call(this, 'read', this, options); }, // 保存模型中的數(shù)據(jù)到服務器 save: function (key, value, options) { // attrs存儲需要保存到服務器的數(shù)據(jù)對象 var attrs, current;// 支持設(shè)置單個屬性的方式 key: value // 支持對象形式的批量設(shè)置方式 {key: value} if (_.isObject(key) || key == null) { // 如果key是一個對象, 則認為是通過對象方式設(shè)置 // 此時第二個參數(shù)被認為是options attrs = key; options = value; } else { // 如果是通過key: value形式設(shè)置單個屬性, 則直接設(shè)置attrs attrs = {}; attrs[key] = value; } // 配置對象必須是一個新的對象 options = options ? _.clone(options) : {};// 如果在options中設(shè)置了wait選項, 則被改變的數(shù)據(jù)將會被提前驗證, 且服務器沒有響應新數(shù)據(jù)(或響應失敗)時, 本地數(shù)據(jù)會被還原為修改前的狀態(tài) // 如果沒有設(shè)置wait選項, 則無論服務器是否設(shè)置成功, 本地數(shù)據(jù)均會被修改為最新狀態(tài) if (options.wait) { // 對需要保存的數(shù)據(jù)提前進行驗證 if (!this._validate(attrs, options)) return false; // 記錄當前模型中的數(shù)據(jù), 用于在將數(shù)據(jù)發(fā)送到服務器后, 將數(shù)據(jù)進行還原 // 如果服務器響應失敗或沒有返回數(shù)據(jù), 則可以保持修改前的狀態(tài) current = _.clone(this.attributes); }// silentOptions在options對象中加入了silent(不對數(shù)據(jù)進行驗證) // 當使用wait參數(shù)時使用silentOptions配置項, 因為在上面已經(jīng)對數(shù)據(jù)進行過驗證 // 如果沒有設(shè)置wait參數(shù), 則仍然使用原始的options配置項 var silentOptions = _.extend({}, options, { silent: true }); // 將修改過最新的數(shù)據(jù)保存到模型中, 便于在sync方法中獲取模型數(shù)據(jù)保存到服務器 if (attrs && !this.set(attrs, options.wait ? silentOptions : options)) { return false; }var model = this; // 在options中可以指定保存數(shù)據(jù)成功后的自定義回調(diào)函數(shù) var success = options.success; // 服務器響應成功后執(zhí)行success options.success = function (resp, status, xhr) { // 獲取服務器響應最新狀態(tài)的數(shù)據(jù) var serverAttrs = model.parse(resp, xhr); // 如果使用了wait參數(shù), 則優(yōu)先將修改后的數(shù)據(jù)狀態(tài)直接設(shè)置到模型 if (options.wait) { delete options.wait; serverAttrs = _.extend(attrs || {}, serverAttrs); } // 將最新的數(shù)據(jù)狀態(tài)設(shè)置到模型中 // 如果調(diào)用set方法時驗證失敗, 則不會調(diào)用自定義的success回調(diào)函數(shù) if (!model.set(serverAttrs, options)) return false; if (success) { // 調(diào)用響應成功后自定義的success回調(diào)函數(shù) success(model, resp); } else { // 如果沒有指定自定義回調(diào), 則默認觸發(fā)sync事件 model.trigger('sync', model, resp, options); } }; // 請求發(fā)生錯誤時通過wrapError處理error事件 options.error = Backbone.wrapError(options.error, model, options); // 將模型中的數(shù)據(jù)保存到服務器 // 如果當前模型是一個新建的模型(沒有id), 則使用create方法(新增), 否則認為是update方法(修改) var method = this.isNew() ? 'create' : 'update'; var xhr = (this.sync || Backbone.sync).call(this, method, this, options); // 如果設(shè)置了options.wait, 則將數(shù)據(jù)還原為修改前的狀態(tài) // 此時保存的請求還沒有得到響應, 因此如果響應失敗, 模型中將保持修改前的狀態(tài), 如果服務器響應成功, 則會在success中設(shè)置模型中的數(shù)據(jù)為最新狀態(tài) if (options.wait) this.set(current, silentOptions); return xhr; }, // 刪除模型, 模型將同時從所屬的Collection集合中被刪除 // 如果模型是在客戶端新建的, 則直接從客戶端刪除 // 如果模型數(shù)據(jù)同時存在服務器, 則同時會刪除服務器端的數(shù)據(jù) destroy: function (options) { // 配置項必須是一個新的對象 options = options ? _.clone(options) : {}; var model = this; // 在options中可以指定刪除數(shù)據(jù)成功后的自定義回調(diào)函數(shù) var success = options.success; // 刪除數(shù)據(jù)成功調(diào)用, 觸發(fā)destroy事件, 如果模型存在于Collection集合中, 集合將監(jiān)聽destroy事件并在觸發(fā)時從集合中移除該模型 // 刪除模型時, 模型中的數(shù)據(jù)并沒有被清空, 但模型已經(jīng)從集合中移除, 因此當沒有任何地方引用該模型時, 會被自動從內(nèi)存中釋放 // 建議在刪除模型時, 將模型對象的引用變量設(shè)置為null var triggerDestroy = function () { model.trigger('destroy', model, model.collection, options); }; // 如果該模型是一個客戶端新建的模型, 則直接調(diào)用triggerDestroy從集合中將模型移除 if (this.isNew()) { triggerDestroy(); return false; }// 當從服務器刪除數(shù)據(jù)成功時 options.success = function (resp) { // 如果在options對象中配置wait項, 則表示本地內(nèi)存中的模型數(shù)據(jù), 會在服務器數(shù)據(jù)被刪除成功后再刪除 // 如果服務器響應失敗, 則本地數(shù)據(jù)不會被刪除 if (options.wait) triggerDestroy(); if (success) { // 調(diào)用自定義的成功回調(diào)函數(shù) success(model, resp); } else { // 如果沒有自定義回調(diào), 則默認觸發(fā)sync事件 model.trigger('sync', model, resp, options); } }; // 請求發(fā)生錯誤時通過wrapError處理error事件 options.error = Backbone.wrapError(options.error, model, options); // 通過sync方法發(fā)送刪除數(shù)據(jù)的請求 var xhr = (this.sync || Backbone.sync).call(this, 'delete', this, options); // 如果沒有在options對象中配置wait項, 則會先刪除本地數(shù)據(jù), 再發(fā)送請求刪除服務器數(shù)據(jù) // 此時無論服務器刪除是否成功, 本地模型數(shù)據(jù)已被刪除 if (!options.wait) triggerDestroy(); return xhr; }, // 獲取模型在服務器接口中對應的url, 在調(diào)用save, fetch, destroy等與服務器交互的方法時, 將使用該方法獲取url // 生成的url類似于"PATHINFO"模式, 服務器對模型的操作只有一個url, 對于修改和刪除操作會在url后追加模型id便于標識 // 如果在模型中定義了urlRoot, 服務器接口應為[urlRoot/id]形式 // 如果模型所屬的Collection集合定義了url方法或?qū)傩? 則使用集合中的url形式: [collection.url/id] // 在訪問服務器url時會在url后面追加上模型的id, 便于服務器標識一條記錄, 因此模型中的id需要與服務器記錄對應 // 如果無法獲取模型或集合的url, 將調(diào)用urlError方法拋出一個異常 // 如果服務器接口并沒有按照"PATHINFO"方式進行組織, 可以通過重載url方法實現(xiàn)與服務器的無縫交互 url: function () { // 定義服務器對應的url路徑 var base = getValue(this, 'urlRoot') || getValue(this.collection, 'url') || urlError(); // 如果當前模型是客戶端新建的模型, 則不存在id屬性, 服務器url直接使用base if (this.isNew()) return base; // 如果當前模型具有id屬性, 可能是調(diào)用了save或destroy方法, 將在base后面追加模型的id // 下面將判斷base最后一個字符是否是"/", 生成的url格式為[base/id] return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.id); }, // parse方法用于解析從服務器獲取的數(shù)據(jù), 返回一個能夠被set方法解析的模型數(shù)據(jù) // 一般parse方法會根據(jù)服務器返回的數(shù)據(jù)進行重載, 以便構(gòu)建與服務器的無縫連接 // 當服務器返回的數(shù)據(jù)結(jié)構(gòu)與set方法所需的數(shù)據(jù)結(jié)構(gòu)不一致(例如服務器返回XML格式數(shù)據(jù)時), 可使用parse方法進行轉(zhuǎn)換 parse: function (resp, xhr) { return resp; }, // 創(chuàng)建一個新的模型, 它具有和當前模型相同的數(shù)據(jù) clone: function () { return new this.constructor(this.attributes); }, // 檢查當前模型是否是客戶端創(chuàng)建的新模型 // 檢查方式是根據(jù)模型是否存在id標識, 客戶端創(chuàng)建的新模型沒有id標識 // 因此服務器響應的模型數(shù)據(jù)中必須包含id標識, 標識的屬性名默認為"id", 也可以通過修改idAttribute屬性自定義標識 isNew: function () { return this.id == null; }, // 數(shù)據(jù)被更新時觸發(fā)change事件綁定的函數(shù) // 當set方法被調(diào)用, 會自動調(diào)用change方法, 如果在set方法被調(diào)用時指定了silent配置, 則需要手動調(diào)用change方法 change: function (options) { // options必須是一個對象 options || (options = {}); // this._changing相關(guān)的邏輯有些問題 // this._changing在方法最后被設(shè)置為false, 因此方法上面changing變量的值始終為false(第一次為undefined) // 作者的初衷應該是想用該變量標示change方法是否執(zhí)行完畢, 對于瀏覽器端單線程的腳本來說沒有意義, 因為該方法被執(zhí)行時會阻塞其它腳本 // changing獲取上一次執(zhí)行的狀態(tài), 如果上一次腳本沒有執(zhí)行完畢, 則值為true var changing = this._changing; // 開始執(zhí)行標識, 執(zhí)行過程中值始終為true, 執(zhí)行完畢后this._changing被修改為false this._changing = true;// 將非本次改變的數(shù)據(jù)狀態(tài)添加到_pending對象中 for (var attr in this._silent) this._pending[attr] = true;// changes對象包含了當前數(shù)據(jù)上一次執(zhí)行change事件至今, 已被改變的所有數(shù)據(jù) // 如果之前使用silent未觸發(fā)change事件, 則本次會被放到changes對象中 var changes = _.extend({}, options.changes, this._silent); // 重置_silent對象 this._silent = {}; // 遍歷changes對象, 分別針對每一個屬性觸發(fā)單獨的change事件 for (var attr in changes) { // 將Model對象, 屬性值, 配置項作為參數(shù)以此傳遞給事件的監(jiān)聽函數(shù) this.trigger('change:' + attr, this, this.get(attr), options); }// 如果方法處于執(zhí)行中, 則停止執(zhí)行 if (changing) return this;// 觸發(fā)change事件, 任意數(shù)據(jù)被改變后, 都會依次觸發(fā)"change:屬性"事件和"change"事件 while (!_.isEmpty(this._pending)) { this._pending = {}; // 觸發(fā)change事件, 并將Model實例和配置項作為參數(shù)傳遞給監(jiān)聽函數(shù) this.trigger('change', this, options); // 遍歷changed對象中的數(shù)據(jù), 并依次將已改變數(shù)據(jù)的狀態(tài)從changed中移除 // 在此之后如果調(diào)用hasChanged檢查數(shù)據(jù)狀態(tài), 將得到false(未改變) for (var attr in this.changed) { if (this._pending[attr] || this._silent[attr]) continue; // 移除changed中數(shù)據(jù)的狀態(tài) delete this.changed[attr]; } // change事件執(zhí)行完畢, _previousAttributes屬性將記錄當前模型最新的數(shù)據(jù)副本 // 因此如果需要獲取數(shù)據(jù)的上一個狀態(tài), 一般只通過在觸發(fā)的change事件中通過previous或previousAttributes方法獲取 this._previousAttributes = _.clone(this.attributes); }// 執(zhí)行完畢標識 this._changing = false; return this; }, // 檢查某個數(shù)據(jù)是否在上一次執(zhí)行change事件后被改變過 /** * 一般在change事件中配合previous或previousAttributes方法使用, 如: * if(model.hasChanged('attr')) { * var attrPrev = model.previous('attr'); * } */ hasChanged: function (attr) { if (!arguments.length) return !_.isEmpty(this.changed); return _.has(this.changed, attr); }, // 獲取當前模型中的數(shù)據(jù)與上一次數(shù)據(jù)中已經(jīng)發(fā)生變化的數(shù)據(jù)集合 // (一般在使用silent屬性時沒有調(diào)用change方法, 因此數(shù)據(jù)會被臨時抱存在changed屬性中, 上一次的數(shù)據(jù)可通過previousAttributes方法獲取) // 如果傳遞了diff集合, 將使用上一次模型數(shù)據(jù)與diff集合中的數(shù)據(jù)進行比較, 返回不一致的數(shù)據(jù)集合 // 如果比較結(jié)果中沒有差異, 則返回false changedAttributes: function (diff) { // 如果沒有指定diff, 將返回當前模型較上一次狀態(tài)已改變的數(shù)據(jù)集合, 這些數(shù)據(jù)已經(jīng)被存在changed屬性中, 因此返回changed集合的一個副本 if (!diff) return this.hasChanged() ? _.clone(this.changed) : false; // 指定了需要進行比較的diff集合, 將返回上一次的數(shù)據(jù)與diff集合的比較結(jié)果 // old變量存儲了上一個狀態(tài)的模型數(shù)據(jù) var val, changed = false, old = this._previousAttributes; // 遍歷diff集合, 并將每一項與上一個狀態(tài)的集合進行比較 for (var attr in diff) { // 將比較結(jié)果不一致的數(shù)據(jù)臨時存儲到changed變量 if (_.isEqual(old[attr], (val = diff[attr]))) continue; (changed || (changed = {}))[attr] = val; } // 返回比較結(jié)果 return changed; }, // 在模型觸發(fā)的change事件中, 獲取某個屬性被改變前上一個狀態(tài)的數(shù)據(jù), 一般用于進行數(shù)據(jù)比較或回滾 // 該方法一般在change事件中調(diào)用, change事件被觸發(fā)后, _previousAttributes屬性存放最新的數(shù)據(jù) previous: function (attr) { // attr指定需要獲取上一個狀態(tài)的屬性名稱 if (!arguments.length || !this._previousAttributes) return null; return this._previousAttributes[attr]; }, // 在模型觸發(fā)change事件中, 獲取所有屬性上一個狀態(tài)的數(shù)據(jù)集合 // 該方法類似于previous()方法, 一般在change事件中調(diào)用, 用于數(shù)據(jù)比較或回滾 previousAttributes: function () { // 將上一個狀態(tài)的數(shù)據(jù)對象克隆為一個新對象并返回 return _.clone(this._previousAttributes); }, // Check if the model is currently in a valid state. It's only possible to // get into an *invalid* state if you're using silent changes. // 驗證當前模型中的數(shù)據(jù)是否能通過validate方法驗證, 調(diào)用前請確保定義了validate方法 isValid: function () { return !this.validate(this.attributes); }, // 數(shù)據(jù)驗證方法, 在調(diào)用set, save, add等數(shù)據(jù)更新方法時, 被自動執(zhí)行 // 驗證失敗會觸發(fā)模型對象的"error"事件, 如果在options中指定了error處理函數(shù), 則只會執(zhí)行options.error函數(shù) // @param {Object} attrs 數(shù)據(jù)模型的attributes屬性, 存儲模型的對象化數(shù)據(jù) // @param {Object} options 配置項 // @return {Boolean} 驗證通過返回true, 不通過返回false _validate: function (attrs, options) { // 如果在調(diào)用set, save, add等數(shù)據(jù)更新方法時設(shè)置了options.silent屬性, 則忽略驗證 // 如果Model中沒有添加validate方法, 則忽略驗證 if (options.silent || !this.validate) return true; // 獲取對象中所有的屬性值, 并放入validate方法中進行驗證 // validate方法包含2個參數(shù), 分別為模型中的數(shù)據(jù)集合與配置對象, 如果驗證通過則不返回任何數(shù)據(jù)(默認為undefined), 驗證失敗則返回帶有錯誤信息數(shù)據(jù) attrs = _.extend({}, this.attributes, attrs); var error = this.validate(attrs, options); // 驗證通過 if (!error) return true; // 驗證未通過 // 如果配置對象中設(shè)置了error錯誤處理方法, 則調(diào)用該方法并將錯誤數(shù)據(jù)和配置對象傳遞給該方法 if (options && options.error) { options.error(this, error, options); } else { // 如果對模型綁定了error事件監(jiān)聽, 則觸發(fā)綁定事件 this.trigger('error', this, error, options); } // 返回驗證未通過標識 return false; } });// Backbone.Collection 數(shù)據(jù)模型集合相關(guān) // -------------------// Collection集合存儲一系列相同類的數(shù)據(jù)模型, 并提供相關(guān)方法對模型進行操作 var Collection = Backbone.Collection = function (models, options) { // 配置對象 options || (options = {}); // 在配置參數(shù)中設(shè)置集合的模型類 if (options.model) this.model = options.model; // 如果設(shè)置了comparator屬性, 則集合中的數(shù)據(jù)將按照comparator方法中的排序算法進行排序(在add方法中會自動調(diào)用) if (options.comparator) this.comparator = options.comparator; // 實例化時重置集合的內(nèi)部狀態(tài)(第一次調(diào)用時可理解為定義狀態(tài)) this._reset(); // 調(diào)用自定義初始化方法, 如果需要一般會重載initialize方法 this.initialize.apply(this, arguments); // 如果指定了models數(shù)據(jù), 則調(diào)用reset方法將數(shù)據(jù)添加到集合中 // 首次調(diào)用時設(shè)置了silent參數(shù), 因此不會觸發(fā)"reset"事件 if (models) this.reset(models, { silent: true, parse: options.parse }); }; // 通過extend方法定義集合類原型方法 _.extend(Collection.prototype, Events, {// 定義集合的模型類, 模型類必須是一個Backbone.Model的子類 // 在使用集合相關(guān)方法(如add, create等)時, 允許傳入數(shù)據(jù)對象, 集合方法會根據(jù)定義的模型類自動創(chuàng)建對應的實例 // 集合中存儲的數(shù)據(jù)模型應該都是同一個模型類的實例 model: Model,// 初始化方法, 該方法在集合實例被創(chuàng)建后自動調(diào)用 // 一般會在定義集合類時重載該方法 initialize: function () {}, // 返回一個數(shù)組, 包含了集合中每個模型的數(shù)據(jù)對象 toJSON: function (options) { // 通過Undersocre的map方法將集合中每一個模型的toJSON結(jié)果組成一個數(shù)組, 并返回 return this.map(function (model) { // 依次調(diào)用每個模型對象的toJSON方法, 該方法默認將返回模型的數(shù)據(jù)對象(復制的副本) // 如果需要返回字符串等其它形式, 可以重載toJSON方法 return model.toJSON(options); }); }, // 向集合中添加一個或多個模型對象 // 默認會觸發(fā)"add"事件, 如果在options中設(shè)置了silent屬性, 可以關(guān)閉此次事件觸發(fā) // 傳入的models可以是一個或一系列的模型對象(Model類的實例), 如果在集合中設(shè)置了model屬性, 則允許直接傳入數(shù)據(jù)對象(如 {name: 'test'}), 將自動將數(shù)據(jù)對象實例化為model指向的模型對象 add: function (models, options) { // 局部變量定義 var i, index, length, model, cid, id, cids = {}, ids = {}, dups = []; options || (options = {}); // models必須是一個數(shù)組, 如果只傳入了一個模型, 則將其轉(zhuǎn)換為數(shù)組 models = _.isArray(models) ? models.slice() : [models];// 遍歷需要添加的模型列表, 遍歷過程中, 將執(zhí)行以下操作: // - 將數(shù)據(jù)對象轉(zhuǎn)化模型對象 // - 建立模型與集合之間的引用 // - 記錄無效和重復的模型, 并在后面進行過濾 for (i = 0, length = models.length; i < length; i++) { // 將數(shù)據(jù)對象轉(zhuǎn)換為模型對象, 簡歷模型與集合的引用, 并存儲到model(同時models中對應的模型已經(jīng)被替換為模型對象) if (!(model = models[i] = this._prepareModel(models[i], options))) { throw new Error("Can't add an invalid model to a collection"); } // 當前模型的cid和id cid = model.cid; id = model.id; // dups數(shù)組中記錄了無效或重復的模型索引(models數(shù)組中的索引), 并在下一步進行過濾刪除 // 如果cids, ids變量中已經(jīng)存在了該模型的索引, 則認為是同一個模型在傳入的models數(shù)組中聲明了多次 // 如果_byCid, _byId對象中已經(jīng)存在了該模型的索引, 則認為同一個模型在當前集合中已經(jīng)存在 // 對于上述兩種情況, 將模型的索引記錄到dups進行過濾刪除 if (cids[cid] || this._byCid[cid] || ((id != null) && (ids[id] || this._byId[id]))) { dups.push(i); continue; } // 將models中已經(jīng)遍歷過的模型記錄下來, 用于在下一次循環(huán)時進行重復檢查 cids[cid] = ids[id] = model; }// 從models中刪除無效或重復的模型, 保留目前集合中真正需要添加的模型列表 i = dups.length; while (i--) { models.splice(dups[i], 1); }// 遍歷需要添加的模型, 監(jiān)聽模型事件并記錄_byCid, _byId列表, 用于在調(diào)用get和getByCid方法時作為索引 for (i = 0, length = models.length; i < length; i++) { // 監(jiān)聽模型中的所有事件, 并執(zhí)行_onModelEvent方法 // _onModelEvent方法中會對模型拋出的add, remove, destroy和change事件進行處理, 以便模型與集合中的狀態(tài)保持同步 (model = models[i]).on('all', this._onModelEvent, this); // 將模型根據(jù)cid記錄到_byCid對象, 便于根據(jù)cid進行查找 this._byCid[model.cid] = model; // 將模型根據(jù)id記錄到_byId對象, 便于根據(jù)id進行查找 if (model.id != null) this._byId[model.id] = model; }// 改變集合的length屬性, length屬性記錄了當前集合中模型的數(shù)量 this.length += length; // 設(shè)置新模型列表插入到集合中的位置, 如果在options中設(shè)置了at參數(shù), 則在集合的at位置插入 // 默認將插入到集合的末尾 // 如果設(shè)置了comparator自定義排序方法, 則設(shè)置at后還將按照comparator中的方法進行排序, 因此最終的順序可能并非在at指定的位置 index = options.at != null ? options.at : this.models.length; splice.apply(this.models, [index, 0].concat(models)); // 如果設(shè)置了comparator方法, 則將數(shù)據(jù)按照comparator中的算法進行排序 // 自動排序使用silent屬性阻止觸發(fā)reset事件 if (this.comparator) this.sort({ silent: true }); // 依次對每個模型對象觸發(fā)"add"事件, 如果設(shè)置了silent屬性, 則阻止事件觸發(fā) if (options.silent) return this; // 遍歷新增加的模型列表 for (i = 0, length = this.models.length; i < length; i++) { if (!cids[(model = this.models[i]).cid]) continue; options.index = i; // 觸發(fā)模型的"add"事件, 因為集合監(jiān)聽了模型的"all"事件, 因此在_onModelEvent方法中, 集合也將觸發(fā)"add"事件 // 詳細信息可參考Collection.prototype._onModelEvent方法 model.trigger('add', model, this, options); } return this; }, // 從集合中移除模型對象(支持移除多個模型) // 傳入的models可以是需要移除的模型對象, 或模型的cid和模型的id // 移除模型并不會調(diào)用模型的destroy方法 // 如果沒有設(shè)置options.silent參數(shù), 將觸發(fā)模型的remove事件, 同時將觸發(fā)集合的remove事件(集合通過_onModelEvent方法監(jiān)聽了模型的所有事件) remove: function (models, options) { var i, l, index, model; // options默認為空對象 options || (options = {}); // models必須是數(shù)組類型, 當只移除一個模型時, 將其放入一個數(shù)組 models = _.isArray(models) ? models.slice() : [models]; // 遍歷需要移除的模型列表 for (i = 0, l = models.length; i < l; i++) { // 所傳入的models列表中可以是需要移除的模型對象, 或模型的cid和模型的id // (在getByCid和get方法中, 可通過cid, id來獲取模型, 如果傳入的是一個模型對象, 則返回模型本身) model = this.getByCid(models[i]) || this.get(models[i]); // 沒有獲取到模型 if (!model) continue; // 從_byId列表中移除模型的id引用 delete this._byId[model.id]; // 從_byCid列表中移除模型的cid引用 delete this._byCid[model.cid]; // indexOf是Underscore對象中的方法, 這里通過indexOf方法獲取模型在集合中首次出現(xiàn)的位置 index = this.indexOf(model); // 從集合列表中移除該模型 this.models.splice(index, 1); // 重置當前集合的length屬性(記錄集合中模型的數(shù)量) this.length--; // 如果沒有設(shè)置silent屬性, 則觸發(fā)模型的remove事件 if (!options.silent) { // 將當前模型在集合中的位置添加到options對象并傳遞給remove監(jiān)聽事件, 以便在事件函數(shù)中可以使用 options.index = index; model.trigger('remove', model, this, options); } // 解除模型與集合的關(guān)系, 包括集合中對模型的引用和事件監(jiān)聽 this._removeReference(model); } return this; }, // 向集合的末尾添加模型對象 // 如果集合類中定義了comparator排序方法, 則通過push方法添加的模型將按照comparator定義的算法進行排序, 因此模型順序可能會被改變 push: function (model, options) { // 通過_prepareModel方法將model實例化為模型對象, 這句代碼是多余的, 因為在下面調(diào)用的add方法中還會通過_prepareModel獲取一次模型 model = this._prepareModel(model, options); // 調(diào)用add方法將模型添加到集合中(默認添加到集合末尾) this.add(model, options); return model; }, // 移除集合中最后一個模型對象 pop: function (options) { // 獲取集合中最后一個模型 var model = this.at(this.length - 1); // 通過remove方法移除該模型 this.remove(model, options); return model; }, // 向集合的第一個位置插入模型 // 如果集合類中定義了comparator排序方法, 則通過unshift方法添加的模型將按照comparator定義的算法進行排序, 因此模型順序可能會被改變 unshift: function (model, options) { // 通過_prepareModel方法將model實例化為模型對象 model = this._prepareModel(model, options); // 調(diào)用add方法將模型插入到集合的第一個位置(設(shè)置at為0) // 如果定義了comparator排序方法, 集合的順序?qū)⒈恢嘏?/span> this.add(model, _.extend({ at: 0 }, options)); return model; }, // 移除并返回集合中的第一個模型對象 shift: function (options) { // 獲得集合中的第一個模型 var model = this.at(0); // 從集合中刪除該模型 this.remove(model, options); // 返回模型對象 return model; }, // 根據(jù)id從集合中查找模型并返回 get: function (id) { if (id == null) return void 0; return this._byId[id.id != null ? id.id : id]; }, // 根據(jù)cid從集合中查找模型并返回 getByCid: function (cid) { return cid && this._byCid[cid.cid || cid]; }, // 根據(jù)索引(下標, 從0開始)從集合中查找模型并返回 at: function (index) { return this.models[index]; }, // 對集合中的模型根據(jù)值進行篩選 // attrs是一個篩選對象, 如 {name: 'Jack'}, 將返回集合中所有name為"Jack"的模型(數(shù)組) where: function (attrs) { // attrs不能為空值 if (_.isEmpty(attrs)) return []; // 通過filter方法對集合中的模型進行篩選 // filter方法是Underscore中的方法, 用于將遍歷集合中的元素, 并將能通過處理器驗證(返回值為true)的元素作為數(shù)組返回 return this.filter(function (model) { // 遍歷attrs對象中的驗證規(guī)則 for (var key in attrs) { // 將attrs中的驗證規(guī)則與集合中的模型進行匹配 if (attrs[key] !== model.get(key)) return false; } return true; }); }, // 對集合中的模型按照comparator屬性指定的方法進行排序 // 如果沒有在options中設(shè)置silent參數(shù), 則排序后將觸發(fā)reset事件 sort: function (options) { // options默認是一個對象 options || (options = {}); // 調(diào)用sort方法必須指定了comparator屬性(排序算法方法), 否則將拋出一個錯誤 if (!this.comparator) throw new Error('Cannot sort a set without a comparator'); // boundComparator存儲了綁定當前集合上下文對象的comparator排序算法方法 var boundComparator = _.bind(this.comparator, this); if (this.comparator.length == 1) { this.models = this.sortBy(boundComparator); } else { // 調(diào)用Array.prototype.sort通過comparator算法對數(shù)據(jù)進行自定義排序 this.models.sort(boundComparator); } // 如果沒有指定silent參數(shù), 則觸發(fā)reset事件 if (!options.silent) this.trigger('reset', this, options); return this; }, // 將集合中所有模型的attr屬性值存放到一個數(shù)組并返回 pluck: function (attr) { // map是Underscore中的方法, 用于遍歷一個集合, 并將所有處理器的返回值作為一個數(shù)組返回 return _.map(this.models, function (model) { // 返回當前模型的attr屬性值 return model.get(attr); }); }, // 替換集合中的所有模型數(shù)據(jù)(models) // 該操作將刪除集合中當前的所有數(shù)據(jù)和狀態(tài), 并重新將數(shù)據(jù)設(shè)置為models // models應該是一個數(shù)組, 可以包含一系列Model模型對象, 或原始對象(將在add方法中自動創(chuàng)建為模型對象) reset: function (models, options) { // models是進行替換的模型(或數(shù)據(jù))數(shù)組 models || (models = []); // options默認是一個空對象 options || (options = {}); // 遍歷當前集合中的模型, 依次刪除并解除它們與集合的引用關(guān)系 for (var i = 0, l = this.models.length; i < l; i++) { this._removeReference(this.models[i]); } // 刪除集合數(shù)據(jù)并重置狀態(tài) this._reset(); // 通過add方法將新的模型數(shù)據(jù)添加到集合 // 這里通過exnted方法將配置項覆蓋到一個新的對象, 該對象默認silent為true, 因此不會觸發(fā)"add"事件 // 如果在調(diào)用reset方法時沒有設(shè)置silent屬性則會觸發(fā)reset事件, 如果設(shè)置為true則不會觸發(fā)任何事件, 如果設(shè)置為false, 將依次觸發(fā)"add"和"reset"事件 this.add(models, _.extend({ silent: true }, options)); // 如果在調(diào)用reset方法時沒有設(shè)置silent屬性, 則觸發(fā)reset事件 if (!options.silent) this.trigger('reset', this, options); return this; }, // 從服務器獲取集合的初始化數(shù)據(jù) // 如果在options中設(shè)置參數(shù)add=true, 則獲取到的數(shù)據(jù)會被追加到集合中, 否則將以服務器返回的數(shù)據(jù)替換集合中的當前數(shù)據(jù) fetch: function (options) { // 復制options對象, 因為options對象在后面會被修改用于臨時存儲數(shù)據(jù) options = options ? _.clone(options) : {}; if (options.parse === undefined) options.parse = true; // collection記錄當前集合對象, 用于在success回調(diào)函數(shù)中使用 var collection = this; // 自定義回調(diào)函數(shù), 數(shù)據(jù)請求成功后并添加完成后, 會調(diào)用自定義success函數(shù) var success = options.success; // 當從服務器請求數(shù)據(jù)成功時執(zhí)行options.success, 該函數(shù)中將解析并添加數(shù)據(jù) options.success = function (resp, status, xhr) { // 通過parse方法對服務器返回的數(shù)據(jù)進行解析, 如果需要自定義數(shù)據(jù)結(jié)構(gòu), 可以重載parse方法 // 如果在options中設(shè)置add=true, 則調(diào)用add方法將數(shù)據(jù)添加到集合, 否則將通過reset方法將集合中的數(shù)據(jù)替換為服務器的返回數(shù)據(jù) collection[options.add ? 'add' : 'reset'](collection.parse(resp, xhr), options); // 如果設(shè)置了自定義成功回調(diào), 則執(zhí)行 if (success) success(collection, resp); }; // 當服務器返回狀態(tài)錯誤時, 通過wrapError方法處理錯誤事件 options.error = Backbone.wrapError(options.error, collection, options); // 調(diào)用Backbone.sync方法發(fā)送請求從服務器獲取數(shù)據(jù) // 如果需要的數(shù)據(jù)并不是從服務器獲取, 或獲取方式不使用AJAX, 可以重載Backbone.sync方法 return (this.sync || Backbone.sync).call(this, 'read', this, options); }, // 向集合中添加并創(chuàng)建一個模型, 同時將該模型保存到服務器 // 如果是通過數(shù)據(jù)對象來創(chuàng)建模型, 需要在集合中聲明model屬性對應的模型類 // 如果在options中聲明了wait屬性, 則會在服務器創(chuàng)建成功后再將模型添加到集合, 否則先將模型添加到集合, 再保存到服務器(無論保存是否成功) create: function (model, options) { var coll = this; // 定義options對象 options = options ? _.clone(options) : {}; // 通過_prepareModel獲取模型類的實例 model = this._prepareModel(model, options); // 模型創(chuàng)建失敗 if (!model) return false; // 如果沒有聲明wait屬性, 則通過add方法將模型添加到集合中 if (!options.wait) coll.add(model, options); // success存儲保存到服務器成功之后的自定義回調(diào)函數(shù)(通過options.success聲明) var success = options.success; // 監(jiān)聽模型數(shù)據(jù)保存成功后的回調(diào)函數(shù) options.success = function (nextModel, resp, xhr) { // 如果聲明了wait屬性, 則在只有在服務器保存成功后才會將模型添加到集合中 if (options.wait) coll.add(nextModel, options); // 如果聲明了自定義成功回調(diào), 則執(zhí)行自定義函數(shù), 否則將默認觸發(fā)模型的sync事件 if (success) { success(nextModel, resp); } else { nextModel.trigger('sync', model, resp, options); } }; // 調(diào)用模型的save方法, 將模型數(shù)據(jù)保存到服務器 model.save(null, options); return model; }, // 數(shù)據(jù)解析方法, 用于將服務器數(shù)據(jù)解析為模型和集合可用的結(jié)構(gòu)化數(shù)據(jù) // 默認將返回resp本身, 這需要與服務器定義Backbone支持的數(shù)據(jù)格式, 如果需要自定義數(shù)據(jù)格式, 可以重載parse方法 parse: function (resp, xhr) { return resp; }, // chain用于構(gòu)建集合數(shù)據(jù)的鏈式操作, 它將集合中的數(shù)據(jù)轉(zhuǎn)換為一個Underscore對象, 并使用Underscore的chain方法轉(zhuǎn)換為鏈式結(jié)構(gòu) // 關(guān)于chain方法的轉(zhuǎn)換方式, 可參考Underscore中chain方法的注釋 chain: function () { return _(this.models).chain(); }, // 刪除所有集合元素并重置集合中的數(shù)據(jù)狀態(tài) _reset: function (options) { // 刪除集合元素 this.length = 0; this.models = []; // 重置集合狀態(tài) this._byId = {}; this._byCid = {}; }, // 將模型添加到集合中之前的一些準備工作 // 包括將數(shù)據(jù)實例化為一個模型對象, 和將集合引用到模型的collection屬性 _prepareModel: function (model, options) { options || (options = {}); // 檢查model是否是一個模型對象(即Model類的實例) if (!(model instanceof Model)) { // 傳入的model是模型數(shù)據(jù)對象, 而并非模型對象 // 將數(shù)據(jù)作為參數(shù)傳遞給Model, 以創(chuàng)建一個新的模型對象 var attrs = model; // 設(shè)置模型引用的集合 options.collection = this; // 將數(shù)據(jù)轉(zhuǎn)化為模型 model = new this.model(attrs, options); // 對模型中的數(shù)據(jù)進行驗證 if (!model._validate(model.attributes, options)) model = false; } else if (!model.collection) { // 如果傳入的是一個模型對象但沒有建立與集合的引用, 則設(shè)置模型的collection屬性為當前集合 model.collection = this; } return model; }, // 解綁某個模型與集合的關(guān)系, 包括對集合的引用和事件監(jiān)聽 // 一般在調(diào)用remove方法刪除模型或調(diào)用reset方法重置狀態(tài)時自動調(diào)用 _removeReference: function (model) { // 如果模型引用了當前集合, 則移除該引用(必須確保所有對模型的引用已經(jīng)解除, 否則模型可能無法從內(nèi)存中釋放) if (this == model.collection) { delete model.collection; } // 取消集合中監(jiān)聽的所有模型事件 model.off('all', this._onModelEvent, this); }, // 在向集合中添加模型時被自動調(diào)用 // 用于監(jiān)聽集合中模型的事件, 當模型在觸發(fā)事件(add, remove, destroy, change事件)時集合進行相關(guān)處理 _onModelEvent: function (event, model, collection, options) { // 添加和移除模型的事件, 必須確保模型所屬的集合為當前集合對象 if ((event == 'add' || event == 'remove') && collection != this) return; // 模型觸發(fā)銷毀事件時, 從集合中移除 if (event == 'destroy') { this.remove(model, options); } // 當模型的id被修改時, 集合修改_byId中存儲對模型的引用, 保持與模型id的同步, 便于使用get()方法獲取模型對象 if (model && event === 'change:' + model.idAttribute) { // 獲取模型在改變之前的id, 并根據(jù)此id從集合的_byId列表中移除 delete this._byId[model.previous(model.idAttribute)]; // 以模型新的id作為key, 在_byId列表中存放對模型的引用 this._byId[model.id] = model; } // 在集合中觸發(fā)模型對應的事件, 無論模型觸發(fā)任何事件, 集合都會觸發(fā)對應的事件 // (例如當模型被添加到集合中時, 會觸發(fā)模型的"add"事件, 同時也會在此方法中觸發(fā)集合的"add"事件) // 這對于監(jiān)聽并處理集合中模型狀態(tài)的變化非常有效 // 在監(jiān)聽的集合事件中, 觸發(fā)對應事件的模型會被作為參數(shù)傳遞給集合的監(jiān)聽函數(shù) this.trigger.apply(this, arguments); } });// 定義Underscore中的集合操作的相關(guān)方法 // 將Underscore中一系列集合操作方法復制到Collection集合類的原型對象中 // 這樣就可以直接通過集合對象調(diào)用Underscore相關(guān)的集合方法 // 這些方法在調(diào)用時所操作的集合數(shù)據(jù)是當前Collection對象的models數(shù)據(jù) var methods = ['forEach', 'each', 'map', 'reduce', 'reduceRight', 'find', 'detect', 'filter', 'select', 'reject', 'every', 'all', 'some', 'any', 'include', 'contains', 'invoke', 'max', 'min', 'sortBy', 'sortedIndex', 'toArray', 'size', 'first', 'initial', 'rest', 'last', 'without', 'indexOf', 'shuffle', 'lastIndexOf', 'isEmpty', 'groupBy'];// 遍歷已經(jīng)定義的方法列表 _.each(methods, function (method) { // 將方法復制到Collection集合類的原型對象 Collection.prototype[method] = function () { // 調(diào)用時直接使用Underscore的方法, 上下文對象保持為Underscore對象 // 需要注意的是這里傳遞給Underscore方法的集合參數(shù)是 this.models, 因此在使用這些方法時, 所操作的集合對象是當前Collection對象的models數(shù)據(jù) return _[method].apply(_, [this.models].concat(_.toArray(arguments))); }; }); // Backbone.Router URL路由器 // -------------------// 通過繼承Backbone.Router類實現(xiàn)自定義的路由器 // 路由器允許定義路由規(guī)則, 通過URL片段進行導航, 并將每一個規(guī)則對應到一個方法, 當URL匹配某個規(guī)則時會自動執(zhí)行該方法 // 路由器通過URL進行導航, 導航方式分為pushState, Hash, 和監(jiān)聽方式(詳細可參考Backbone.History類) // 在創(chuàng)建Router實例時, 通過options.routes來設(shè)置某個路由規(guī)則對應的監(jiān)聽方法 // options.routes中的路由規(guī)則按照 {規(guī)則名稱: 方法名稱}進行組織, 每一個路由規(guī)則所對應的方法, 都必須是在Router實例中的已經(jīng)聲明的方法 // options.routes定義的路由規(guī)則按照先后順序進行匹配, 如果當前URL能被多個規(guī)則匹配, 則只會執(zhí)行第一個匹配的事件方法 var Router = Backbone.Router = function (options) { // options默認是一個空對象 options || (options = {}); // 如果在options中設(shè)置了routes對象(路由規(guī)則), 則賦給當前實例的routes屬性 // routes屬性記錄了路由規(guī)則與事件方法的綁定關(guān)系, 當URL與某一個規(guī)則匹配時, 會自動調(diào)用關(guān)聯(lián)的事件方法 if (options.routes) this.routes = options.routes; // 解析和綁定路由規(guī)則 this._bindRoutes(); // 調(diào)用自定義的初始化方法 this.initialize.apply(this, arguments); }; // 定義用于將字符串形式的路由規(guī)則, 轉(zhuǎn)換為可執(zhí)行的正則表達式規(guī)則時的查找條件 // (字符串形式的路由規(guī)則, 通過\w+進行匹配, 因此只支持字母數(shù)字和下劃線組成的字符串) // 匹配一個URL片段中(以/"斜線"為分隔)的動態(tài)路由規(guī)則 // 如: (topic/:id) 匹配 (topic/1228), 監(jiān)聽事件function(id) { // id為1228 } var namedParam = /:\w+/g; // 匹配整個URL片段中的動態(tài)路由規(guī)則 // 如: (topic*id) 匹配 (url#/topic1228), 監(jiān)聽事件function(id) { // id為1228 } var splatParam = /\*\w+/g; // 匹配URL片段中的特殊字符, 并在字符前加上轉(zhuǎn)義符, 防止特殊字符在被轉(zhuǎn)換為正則表達式后變成元字符 // 如: (abc)^[,.] 將被轉(zhuǎn)換為 \(abc\)\^\[\,\.\] var escapeRegExp = /[-[\]{}()+?.,\\^$|#\s]/g;// 向Router類的原型對象中擴展屬性和方法 _.extend(Router.prototype, Events, {// 自定義初始化方法, 在路由器Router實例化后被自動調(diào)用 initialize: function () {}, // 將一個路由規(guī)則綁定給一個監(jiān)聽事件, 當URL片段匹配該規(guī)則時, 會自動調(diào)用觸發(fā)該事件 route: function (route, name, callback) { // 創(chuàng)建history實例, Backbone.history是一個單例對象, 只在第一次創(chuàng)建路由器對象時被實例化 Backbone.history || (Backbone.history = new History); // 檢查route規(guī)則名稱是否為一個字符串(當手動調(diào)用route方法創(chuàng)建路由規(guī)則時, 允許傳遞一個正則表達式或字符串作為規(guī)則) // 在構(gòu)造Router實例時傳入options.routes中的規(guī)則, 都應該是一個字符串(因為在_bindRoutes方法中將routes配置中的key作為路由規(guī)則) // 如果傳入的是字符串類型的路由規(guī)則, 通過_routeToRegExp方法將其轉(zhuǎn)換為一個正則表達式, 用于匹配URL片段 if (!_.isRegExp(route)) route = this._routeToRegExp(route); // 如果沒有設(shè)置callback(事件方法), 則根據(jù)name從當前Router實例中獲取與name同名的方法 // 這是因為在手動調(diào)用route方法時可能不會傳遞callback方法, 但必須傳遞name事件名稱, 并在Router實例中已經(jīng)定義了該方法 if (!callback) callback = this[name]; // 調(diào)用history實例的route方法, 該方法會將轉(zhuǎn)換后的正則表達式規(guī)則, 和監(jiān)聽事件方法綁定到history.handlers列表中, 以便history進行路由和控制 // 當history實例匹配到對應的路由規(guī)則而調(diào)用該事件時, 會將URL片段作為字符串(即fragment參數(shù))傳遞給該事件方法 // 這里并沒有直接將監(jiān)聽事件傳遞給history的route方法, 而是使用bind方法封裝了另一個函數(shù), 該函數(shù)的執(zhí)行上下文為當前Router對象 Backbone.history.route(route, _.bind(function (fragment) { // 調(diào)用_extractParameters方法獲取匹配到的規(guī)則中的參數(shù) var args = this._extractParameters(route, fragment); // 調(diào)用callback路由監(jiān)聽事件, 并將參數(shù)傳遞給監(jiān)聽事件 callback && callback.apply(this, args); // 觸發(fā)route:name事件, name為調(diào)用route時傳遞的事件名稱 // 如果對當前Router實例使用on方法綁定了route:name事件, 則會收到該事件的觸發(fā)通知 this.trigger.apply(this, ['route:' + name].concat(args)); // 觸發(fā)history實例中綁定的route事件, 當路由器匹配到任何規(guī)則時, 均會觸發(fā)該事件 Backbone.history.trigger('route', this, name, args); /** * 事件綁定如: * var router = new MyRouter(); * router.on('route:routename', function(param) { * // 綁定到Router實例中某個規(guī)則的事件, 當匹配到該規(guī)則時觸發(fā) * }); * Backbone.history.on('route', function(router, name, args) { * // 綁定到history實例中的事件, 當匹配到任何規(guī)則時觸發(fā) * }); * Backbone.history.start(); */ }, this)); return this; }, // 通過調(diào)用history.navigate方法, 手動設(shè)置跳轉(zhuǎn)到URL navigate: function (fragment, options) { // 代理到history實例的navigate方法 Backbone.history.navigate(fragment, options); }, // 解析當前實例定義的路由(this.routes)規(guī)則, 并調(diào)用route方法將每一個規(guī)則綁定到對應的方法 _bindRoutes: function () { // 如果在創(chuàng)建對象時沒有設(shè)置routes規(guī)則, 則不進行解析和綁定 if (!this.routes) return; // routes變量以二維數(shù)組的形式存儲倒序排列的路由規(guī)則 // 如[['', 'homepage'], ['controller:name', 'toController']] var routes = []; // 遍歷routes配置 for (var route in this.routes) { // 將路由規(guī)則放入一個新的數(shù)組, 按照[規(guī)則名稱, 綁定方法]組織 // 將該數(shù)組通過unshift方法放置到routes頂部, 實現(xiàn)倒序排列 // 這里將routes中的規(guī)則倒序排列, 在后面調(diào)用route方法時會再次調(diào)用unshift將順序倒過來, 以保證最終的順序是按照routes配置中定義的順序來執(zhí)行的 // 倒換兩次順序后, 會重新恢復最初調(diào)用前的順序, 之所以這樣做, 是因為用戶可以手動調(diào)用route方法動態(tài)添加路由規(guī)則, 而手動添加的路由規(guī)則會被添加到列表的第一個, 因此要在route方法中使用unshift來插入規(guī)則 // 而構(gòu)造Router實例時自動添加的規(guī)則, 為了保持定義順序, 因此在此處將定義的規(guī)則倒序排列 routes.unshift([route, this.routes[route]]); } // 循環(huán)完畢, 此時routes中存儲了倒序排列的路由規(guī)則// 循環(huán)路由規(guī)則, 并依次調(diào)用route方法, 將規(guī)則名稱綁定到具體的事件函數(shù) for (var i = 0, l = routes.length; i < l; i++) { // 調(diào)用route方法, 并分別傳遞(規(guī)則名稱, 事件函數(shù)名, 事件函數(shù)對象) this.route(routes[i][0], routes[i][1], this[routes[i][1]]); } }, // 將字符串形式的路由規(guī)則轉(zhuǎn)換為正則表達式對象 // (在route方法中檢查到字符串類型的路由規(guī)則后, 會自動調(diào)用該方法進行轉(zhuǎn)換) _routeToRegExp: function (route) { // 為字符串中特殊字符添加轉(zhuǎn)義符, 防止特殊字符在被轉(zhuǎn)換為正則表達式后變成元字符(這些特殊字符包括-[\]{}()+?.,\\^$|#\s) // 將字符串中以/"斜線"為分隔的動態(tài)路由規(guī)則轉(zhuǎn)換為([^\/]+), 在正則中表示以/"斜線"開頭的多個字符 // 將字符串中的*"星號"動態(tài)路由規(guī)則轉(zhuǎn)換為(.*?), 在正則中表示0或多個任意字符(這里使用了非貪婪模式, 因此你可以使用例如這樣的組合路由規(guī)則: *list/:id, 將匹配 orderlist/123 , 同時會將"order"和"123"作為參數(shù)傳遞給事件方法 ) // 請注意namedParam和splatParam替換后的正則表達式都是用()括號將匹配的內(nèi)容包含起來, 這是為了方便取出匹配的內(nèi)容作為參數(shù)傳遞給事件方法 // 請注意namedParam和splatParam匹配的字符串 :str, *str中的str字符串是無意義的, 它們會在下面替換后被忽略, 但一般寫作和監(jiān)聽事件方法的參數(shù)同名, 以便進行標識 route = route.replace(escapeRegExp, '\\$&').replace(namedParam, '([^\/]+)').replace(splatParam, '(.*?)'); // 將轉(zhuǎn)換后的字符串創(chuàng)建為正則表達式對象并返回 // 這個正則表達式將根據(jù)route字符串中的規(guī)則, 用于匹配URL片段 return new RegExp('^' + route + '$'); }, // 傳入一個路由規(guī)則(正則表達式)和URL片段(字符串)進行匹配, 并返回從匹配的字符串中獲取參數(shù) /** * 例如路由規(guī)則為 'teams/:type/:id', 對應的正則表達式會被轉(zhuǎn)換為/^teams/([^/]+)/([^/]+)$/ , (對路由規(guī)則轉(zhuǎn)換為正則表達式的過程可參考_routeToRegExp方法) * URL片段為 'teams/35/1228' * 則通過exec執(zhí)行后的結(jié)果為 ["teams/35/1228", "35", "1228"] * 數(shù)組中的一個元素是URL片段字符串本身, 從第二個開始則依次為路由規(guī)則表達式中的參數(shù) */ _extractParameters: function (route, fragment) { return route.exec(fragment).slice(1); } });// Backbone.History 路由器管理 // ----------------// History類提供路由管理相關(guān)操作, 包括監(jiān)聽URL的變化, (通過popstate和onhashchange事件進行監(jiān)聽, 對于不支持事件的瀏覽器通過setInterval心跳監(jiān)控) // 提供路由規(guī)則與當前URL的匹配驗證, 和觸發(fā)相關(guān)的監(jiān)聽事件 // History一般不會被直接調(diào)用, 在第一次實例化Router對象時, 將自動創(chuàng)建一個History的單例(通過Backbone.history訪問) var History = Backbone.History = function () { // handlers屬性記錄了當前所有路由對象中已經(jīng)設(shè)置的規(guī)則和監(jiān)聽列表 // 形式如: [{route: route, callback: callback}], route記錄了正則表達式規(guī)則, callback記錄了匹配規(guī)則時的監(jiān)聽事件 // 當history對象監(jiān)聽到URL發(fā)生變化時, 會自動與handlers中定義的規(guī)則進行匹配, 并調(diào)用監(jiān)聽事件 this.handlers = []; // 將checkUrl方法的上下文對象綁定到history對象, 因為checkUrl方法被作為popstate和onhashchange事件或setInterval的回調(diào)函數(shù), 在執(zhí)行回調(diào)時, 上下文對象會被改變 // checkUrl方法用于在監(jiān)聽到URL發(fā)生變化時檢查并調(diào)用loadUrl方法 _.bindAll(this, 'checkUrl'); }; // 定義用于匹配URL片段中首字符是否為"#"或"/"的正則 var routeStripper = /^[#\/]/;// 定義用于匹配從userAgent中獲取的字符串是否包含IE瀏覽器的標識, 用于判斷當前瀏覽器是否為IE var isExplorer = /msie [\w.]+/;// 記錄當前history單例對象是否已經(jīng)被初始化過(調(diào)用start方法) History.started = false;// 向History類的原型對象中添加方法, 這些方法可以通過History的實例調(diào)用(即Backbone.history對象) _.extend(History.prototype, Events, {// 當用戶使用低版本的IE瀏覽器(不支持onhashchange事件)時, 通過心跳監(jiān)聽路由狀態(tài)的變化 // interval屬性設(shè)置心跳頻率(毫秒), 該頻率如果太低可能會導致延遲, 如果太高可能會消耗CPU資源(需要考慮用戶使用低端瀏覽器時的設(shè)備配置) interval: 50,// 獲取location中Hash字符串(錨點#后的片段) getHash: function (windowOverride) { // 如果傳入了一個window對象, 則從該對象中獲取, 否則默認從當前window對象中獲取 var loc = windowOverride ? windowOverride.location : window.location; // 將錨點(#)后的字符串提取出來并返回 var match = loc.href.match(/#(.*)$/); // 如果沒有找到匹配的內(nèi)容, 則返回空字符串 return match ? match[1] : ''; }, // 根據(jù)當前設(shè)置的路由方式, 處理并返回當前URL中的路由片段 getFragment: function (fragment, forcePushState) { // fragment是通過getHash或從URL中已經(jīng)提取的待處理路由片段(如 #/id/1288) if (fragment == null) { // 如果沒有傳遞fragment, 則根據(jù)當前路由方式進行提取 if (this._hasPushState || forcePushState) { // 使用了pushState方式進行路由 // fragment記錄當前域名后的URL路徑 fragment = window.location.pathname; // search記錄當前頁面后的參數(shù)內(nèi)容 var search = window.location.search; // 將路徑和參數(shù)合并在一起, 作為待處理的路由片段 if (search) fragment += search; } else { // 使用了hash方式進行路由 // 通過getHash方法獲取當前錨點(#)后的字符串作為路由片段 fragment = this.getHash(); } } // 根據(jù)配置項中設(shè)置的root參數(shù), 則從路由片段取出root路徑之后的內(nèi)容 if (!fragment.indexOf(this.options.root)) fragment = fragment.substr(this.options.root.length); // 如果URL片段首字母為"#"或"/", 則去除該字符 // 返回處理之后的URL片段 return fragment.replace(routeStripper, ''); }, // 初始化History實例, 該方法只會被調(diào)用一次, 應該在創(chuàng)建并初始化Router對象之后被自動調(diào)用 // 該方法作為整個路由的調(diào)度器, 它將針對不同瀏覽器監(jiān)聽URL片段的變化, 負責驗證并通知到監(jiān)聽函數(shù) start: function (options) { // 如果history對象已經(jīng)被初始化過, 則拋出錯誤 if (History.started) throw new Error("Backbone.history has already been started"); // 設(shè)置history對象的初始化狀態(tài) History.started = true;// 設(shè)置配置項, 使用調(diào)用start方法時傳遞的options配置項覆蓋默認配置 this.options = _.extend({}, { // root屬性設(shè)置URL導航中的路由根目錄 // 如果使用pushState方式進行路由, 則root目錄之后的地址會根據(jù)不同的路由產(chǎn)生不同的地址(這可能會定位到不同的頁面, 因此需要確保服務器支持) // 如果使用Hash錨點的方式進行路由, 則root表示URL后錨點(#)的位置 root: '/' }, this.options, options); /** * history針對不同瀏覽器特性, 實現(xiàn)了3種方式的監(jiān)聽: * - 對于支持HTML5中popstate事件的瀏覽器, 通過popstate事件進行監(jiān)聽 * - 對于不支持popstate的瀏覽器, 使用onhashchange事件進行監(jiān)聽(通過改變hash(錨點)設(shè)置的URL在被載入時會觸發(fā)onhashchange事件) * - 對于不支持popstate和onhashchange事件的瀏覽器, 通過保持心跳監(jiān)聽 * * 關(guān)于HTML5中popstate事件的相關(guān)方法: * - pushState可以將指定的URL添加一個新的history實體到瀏覽器歷史里 * - replaceState方法可以將當前的history實體替換為指定的URL * 使用pushState和replaceState方法時僅替換當前URL, 而并不會真正轉(zhuǎn)到這個URL(當使用后退或前進按鈕時, 也不會跳轉(zhuǎn)到該URL) * (這兩個方法可以解決在AJAX單頁應用中瀏覽器前進, 后退操作的問題) * 當使用pushState或replaceState方法替換的URL, 在被載入時會觸發(fā)onpopstate事件 * 瀏覽器支持情況: * Chrome 5, Firefox 4.0, IE 10, Opera 11.5, Safari 5.0 * * 注意: * - history.start方法默認使用Hash方式進行導航 * - 如果需要啟用pushState方式進行導航, 需要在調(diào)用start方法時, 手動傳入配置options.pushState * (設(shè)置前請確保瀏覽器支持pushState特性, 否則將默認轉(zhuǎn)換為Hash方式) * - 當使用pushState方式進行導航時, URL可能會從options.root指定的根目錄后發(fā)生變化, 這可能會導航到不同頁面, 因此請確保服務器已經(jīng)支持pushState方式的導航 */ // _wantsHashChange屬性記錄是否希望使用hash(錨點)的方式來記錄和導航路由器 // 除非在options配置項中手動設(shè)置hashChange為false, 否則默認將使用hash錨點的方式 // (如果手動設(shè)置了options.pushState為true, 且瀏覽器支持pushState特性, 則會使用pushState方式) this._wantsHashChange = this.options.hashChange !== false; // _wantsPushState屬性記錄是否希望使用pushState方式來記錄和導航路由器 // pushState是HTML5中為window.history添加的新特性, 如果沒有手動聲明options.pushState為true, 則默認將使用hash方式 this._wantsPushState = !!this.options.pushState; // _hasPushState屬性記錄瀏覽器是否支持pushState特性 // 如果在options中設(shè)置了pushState(即希望使用pushState方式), 則檢查瀏覽器是否支持該特性 this._hasPushState = !!(this.options.pushState && window.history && window.history.pushState); // 獲取當前URL中的路由字符串 var fragment = this.getFragment(); // documentMode是IE瀏覽器的獨有屬性, 用于標識當前瀏覽器使用的渲染模式 var docMode = document.documentMode; // oldIE用于檢查當前瀏覽器是否為低版本的IE瀏覽器(即IE 7.0以下版本) // 這句代碼可理解為: 當前瀏覽器為IE, 但不支持documentMode屬性, 或documentMode屬性返回的渲染模式為IE7.0以下 var oldIE = (isExplorer.exec(navigator.userAgent.toLowerCase()) && (!docMode || docMode <= 7));if (oldIE) { // 如果用戶使用低版本的IE瀏覽器, 不支持popstate和onhashchange事件 // 向DOM中插入一個隱藏的iframe, 并通過改變和心跳監(jiān)聽該iframe的URL實現(xiàn)路由 this.iframe = $('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo('body')[0].contentWindow; // 通過navigate將iframe設(shè)置到當前的URL片段, 這并不會真正加載到一個頁面, 因為fragment并非一個完整的URL this.navigate(fragment); }// 開始監(jiān)聽路由狀態(tài)變化 if (this._hasPushState) { // 如果使用了pushState方式路由, 且瀏覽器支持該特性, 則將popstate事件監(jiān)聽到checkUrl方法 $(window).bind('popstate', this.checkUrl); } else if (this._wantsHashChange && ('onhashchange' in window) && !oldIE) { // 如果使用Hash方式進行路由, 且瀏覽器支持onhashchange事件, 則將hashchange事件監(jiān)聽到checkUrl方法 $(window).bind('hashchange', this.checkUrl); } else if (this._wantsHashChange) { // 對于低版本的瀏覽器, 通過setInterval方法心跳監(jiān)聽checkUrl方法, interval屬性標識心跳頻率 this._checkUrlInterval = setInterval(this.checkUrl, this.interval); }// 記錄當前的URL片段 this.fragment = fragment; // 驗證當前是否處于根路徑(即options.root中所配置的路徑) var loc = window.location; var atRoot = loc.pathname == this.options.root;// 如果用戶通過pushState方式的URL訪問到當前地址, 但用戶此時所使用的瀏覽器并不支持pushState特性 // (這可能是某個用戶通過pushState方式訪問該應用, 然后將地址分享給其他用戶, 而其他用戶的瀏覽器并不支持該特性) if (this._wantsHashChange && this._wantsPushState && !this._hasPushState && !atRoot) { // 獲取當前pushState方式中的URL片段, 并通過Hash方式重新打開頁面 this.fragment = this.getFragment(null, true); // 例如hashState方式的URL為 /root/topic/12001, 重新打開的Hash方式的URL則為 /root#topic/12001 window.location.replace(this.options.root + '#' + this.fragment); return true;// 如果用戶通過Hash方式的URL訪問到當前地址, 但調(diào)用Backbone.history.start方法時設(shè)置了pushState(希望通過pushState方式進行路由) // 且用戶瀏覽器支持pushState特性, 則將當前URL替換為pushState方式(注意, 這里使用replaceState方式進行替換URL, 而頁面不會被刷新) // 以下分支條件可理解為: 如果我們希望使用pushState方式進行路由, 且瀏覽器支持該特性, 同時用戶還使用了Hash方式打開當前頁面 // (這可能是某個用戶使用Hash方式瀏覽到一個URL, 并將URL分享給另一個瀏覽器支持pushState特性的用戶, 當該用戶訪問時會執(zhí)行此分支) } else if (this._wantsPushState && this._hasPushState && atRoot && loc.hash) { // 獲取URL中的Hash片段, 并清除字符串首個"#"或"/" this.fragment = this.getHash().replace(routeStripper, ''); // 使用replaceState方法將當前瀏覽器的URL替換為pushState支持的方式, 即: 協(xié)議//主機地址/URL路徑/Hash參數(shù), 例如: // 當用戶訪問Hash方式的URL為 /root/#topic/12001, 將被替換為 /root/topic/12001 // 注: // pushState和replaceState方法的參數(shù)有3個, 分別是state, title, url // -state: 用于存儲插入或修改的history實體信息 // -title: 用于設(shè)置瀏覽器標題(屬于保留參數(shù), 目前瀏覽器還沒有實現(xiàn)該特性) // -url: 設(shè)置history實體的URL地址(可以是絕對或相對路徑, 但無法設(shè)置跨域URL) window.history.replaceState({}, document.title, loc.protocol + '//' + loc.host + this.options.root + this.fragment); }// 一般調(diào)用start方法時會自動調(diào)用loadUrl, 匹配當前URL片段對應的路由規(guī)則, 調(diào)用該規(guī)則的方法 // 如果設(shè)置了silent屬性為true, 則loadUrl方法不會被調(diào)用 // 這種情況一般出現(xiàn)在調(diào)用了stop方法重置history對象狀態(tài)后, 再次調(diào)用start方法啟動(實際上此時并非為頁面初始化, 因此會設(shè)置silent屬性) if (!this.options.silent) { return this.loadUrl(); } }, // 停止history對路由的監(jiān)控, 并將狀態(tài)恢復為未監(jiān)聽狀態(tài) // 調(diào)用stop方法之后, 可重新調(diào)用start方法開始監(jiān)聽, stop方法一般用戶在調(diào)用start方法之后, 需要重新設(shè)置start方法的參數(shù), 或用于單元測試 stop: function () { // 解除對瀏覽器路由的onpopstate和onhashchange事件的監(jiān)聽 $(window).unbind('popstate', this.checkUrl).unbind('hashchange', this.checkUrl); // 停止對于低版本的IE瀏覽器的心跳監(jiān)控 clearInterval(this._checkUrlInterval); // 恢復started狀態(tài), 便于下次重新調(diào)用start方法 History.started = false; }, // 向handlers中綁定一個路由規(guī)則(參數(shù)route, 類型為正則表達式)與事件(參數(shù)callback)的映射關(guān)系(該方法由Router的實例自動調(diào)用) route: function (route, callback) { // 將route和callback插入到handlers列表的第一個位置 // 這是為了確保最后調(diào)用route時傳入的規(guī)則被優(yōu)先進行匹配 this.handlers.unshift({ // 路由規(guī)則(正則) route: route, // 匹配規(guī)則時執(zhí)行的方法 callback: callback }); }, // 檢查當前的URL相對上一次的狀態(tài)是否發(fā)生了變化 // 如果發(fā)生變化, 則記錄新的URL狀態(tài), 并調(diào)用loadUrl方法觸發(fā)新URL與匹配路由規(guī)則的方法 // 該方法在onpopstate和onhashchange事件被觸發(fā)后自動調(diào)用, 或者在低版本的IE瀏覽器中由setInterval心跳定時調(diào)用 checkUrl: function (e) { // 獲取當前的URL片段 var current = this.getFragment(); // 對低版本的IE瀏覽器, 將從iframe中獲取最新的URL片段并賦給current變量 if (current == this.fragment && this.iframe) current = this.getFragment(this.getHash(this.iframe)); // 如果當前URL與上一次的狀態(tài)沒有發(fā)生任何變化, 則停止執(zhí)行 if (current == this.fragment) return false; // 執(zhí)行到這里, URL已經(jīng)發(fā)生改變, 調(diào)用navigate方法將URL設(shè)置為當前URL // 這里在自動調(diào)用navigate方法時, 并沒有傳遞options參數(shù), 因此不會觸發(fā)navigate方法中的loadUrl方法 if (this.iframe) this.navigate(current); // 調(diào)用loadUrl方法, 檢查匹配的規(guī)則, 并執(zhí)行規(guī)則綁定的方法 // 如果調(diào)用this.loadUrl方法沒有成功, 則試圖在調(diào)用loadUrl方法時, 將重新獲取的當前Hash傳遞給該方法 this.loadUrl() || this.loadUrl(this.getHash()); }, // 根據(jù)當前URL, 與handler路由列表中的規(guī)則進行匹配 // 如果URL符合某一個規(guī)則, 則執(zhí)行這個規(guī)則所對應的方法, 函數(shù)將返回true // 如果沒有找到合適的規(guī)則, 將返回false // loadUrl方法一般在頁面初始化時調(diào)用start方法會被自動調(diào)用(除非設(shè)置了silent參數(shù)為true) // - 或當用戶改變URL后, 由checkUrl監(jiān)聽到URL發(fā)生變化時被調(diào)用 // - 或當調(diào)用navigate方法手動導航到某個URL時被調(diào)用 loadUrl: function (fragmentOverride) { // 獲取當前URL片段 var fragment = this.fragment = this.getFragment(fragmentOverride); // 調(diào)用Undersocre的any方法, 將URL片段與handlers中的所有規(guī)則依次進行匹配 var matched = _.any(this.handlers, function (handler) { // 如果handlers中的規(guī)則與當前URL片段匹配, 則執(zhí)行該歸額對應的方法, 并返回true if (handler.route.test(fragment)) { handler.callback(fragment); return true; } }); // matched是any方法的返回值, 如果匹配到規(guī)則則返回true, 沒有匹配到返回false return matched; }, // 導航到指定的URL // 如果在options中設(shè)置了trigger, 將觸發(fā)導航的URL與對應路由規(guī)則的事件 // 如果在options中設(shè)置了replace, 將使用需要導航的URL替換當前的URL在history中的位置 navigate: function (fragment, options) { // 如果沒有調(diào)用start方法, 或已經(jīng)調(diào)用stop方法, 則無法導航 if (!History.started) return false; // 如果options參數(shù)不是一個對象, 而是true值, 則默認trigger配置項為true(即觸發(fā)導航的URL與對應路由規(guī)則的事件) if (!options || options === true) options = { trigger: options }; // 將傳遞的fragment(URL片段)去掉首字符的"#"或"/" var frag = (fragment || '').replace(routeStripper, ''); // 如果當前URL與需要導航的URL沒有變化, 則不繼續(xù)執(zhí)行 if (this.fragment == frag) return;// 如果當前支持并使用了pushState方式進行導航 if (this._hasPushState) { // 構(gòu)造一個完整的URL, 如果當前URL片段中沒有包含根路徑, 則使用根路徑連接URL片段 if (frag.indexOf(this.options.root) != 0) frag = this.options.root + frag; // 設(shè)置新的URL this.fragment = frag; // 如果在options選項中設(shè)置了replace屬性, 則將新的URL替換到history中的當前URL, 否則默認將新的URL追加到history中 window.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, frag);// 如果使用hash方式進行導航 } else if (this._wantsHashChange) { // 設(shè)置新的hash this.fragment = frag; // 調(diào)用_updateHash方法更新當前URL為新的hash, 并將options中的replace配置傳遞給_updateHash方法(在該方法中實現(xiàn)替換或追加新的hash) this._updateHash(window.location, frag, options.replace); // 對于低版本的IE瀏覽器, 當Hash發(fā)生變化時, 更新iframe URL中的Hash if (this.iframe && (frag != this.getFragment(this.getHash(this.iframe)))) { // 如果使用了replace參數(shù)替換當前URL, 則直接將iframe替換為新的文檔 // 調(diào)用document.open打開一個新的文檔, 以擦除當前文檔中的內(nèi)容(這里調(diào)用close方法是為了關(guān)閉文檔的狀態(tài)) // open和close方法之間沒有使用write或writeln方法輸出內(nèi)容, 因此這是一個空文檔 if (!options.replace) this.iframe.document.open().close(); // 調(diào)用_updateHash方法更新iframe中的URL this._updateHash(this.iframe.location, frag, options.replace); }} else { // 如果在調(diào)用start方法時, 手動設(shè)置hashChange參數(shù)為true, 不希望使用pushState和hash方式導航 // 則直接將頁面跳轉(zhuǎn)到新的URL window.location.assign(this.options.root + fragment); } // 如果在options配置項中設(shè)置了trigger屬性, 則調(diào)用loadUrl方法查找路由規(guī)則, 并執(zhí)行規(guī)則對應的事件 // 在URL發(fā)生變化時, 通過checkUrl方法監(jiān)聽到的狀態(tài), 會在checkUrl方法中自動調(diào)用loadUrl方法 // 在手動調(diào)用navigate方法時, 如果需要觸發(fā)路由事件, 則需要傳遞trigger參數(shù) if (options.trigger) this.loadUrl(fragment); }, // 更新或設(shè)置當前URL中的Has串, _updateHash方法在使用hash方式導航時被自動調(diào)用(navigate方法中) // location是需要更新hash的window.location對象 // fragment是需要更新的hash串 // 如果需要將新的hash替換到當前URL, 可以設(shè)置replace為true _updateHash: function (location, fragment, replace) { // 如果設(shè)置了replace為true, 則使用location.replace方法替換當前的URL // 使用replace方法替換URL后, 新的URL將占有原有URL在history歷史中的位置 if (replace) { // 將當前URL與hash組合為一個完整的URL并替換 location.replace(location.toString().replace(/(javascript:|#).*$/, '') + '#' + fragment); } else { // 沒有使用替換方式, 直接設(shè)置location.hash為新的hash串 location.hash = fragment; } } });// Backbone.View 視圖相關(guān) // -------------// 視圖類用于創(chuàng)建與數(shù)據(jù)低耦合的界面控制對象, 通過將視圖的渲染方法綁定到數(shù)據(jù)模型的change事件, 當數(shù)據(jù)發(fā)生變化時會通知視圖進行渲染 // 視圖對象中的el用于存儲當前視圖所需要操作的DOM最父層元素, 這主要是為了提高元素的查找和操作效率, 其優(yōu)點包括: // - 查找或操作元素時, 將操作的范圍限定在el元素內(nèi), 不需要再整個文檔樹中搜索 // - 在為元素綁定事件時, 可以方便地將事件綁定到el元素(默認也會綁定到el元素)或者是其子元素 // - 在設(shè)計模式中, 將一個視圖相關(guān)的元素, 事件, 和邏輯限定在該視圖的范圍中, 降低視圖與視圖間的耦合(至少在邏輯上是這樣) var View = Backbone.View = function (options) { // 為每一個視圖對象創(chuàng)建一個唯一標識, 前綴為"view" this.cid = _.uniqueId('view'); // 設(shè)置初始化配置 this._configure(options || {}); // 設(shè)置或創(chuàng)建視圖中的元素 this._ensureElement(); // 調(diào)用自定義的初始化方法 this.initialize.apply(this, arguments); // 解析options中設(shè)置的events事件列表, 并將事件綁定到視圖中的元素 this.delegateEvents(); }; // 定義用于解析events參數(shù)中事件名稱和元素的正則 var delegateEventSplitter = /^(\S+)\s*(.*)$/;// viewOptions列表記錄一些列屬性名, 在構(gòu)造視圖對象時, 如果傳遞的配置項中包含這些名稱, 則將屬性復制到對象本身 var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName'];// 向視圖類的原型對象中添加一些方法 _.extend(View.prototype, Events, {// 如果在創(chuàng)建視圖對象時, 沒有設(shè)置指定的el元素, 則會通過make方法創(chuàng)建一個元素, tagName為創(chuàng)建元素的默認標簽 // 也可以通過在options中自定義tagName來覆蓋默認的"div"標簽 tagName: 'div',// 每個視圖中都具有一個$選擇器方法, 該方法與jQuery或Zepto類似, 通過傳遞一個表達式來獲取元素 // 但該方法只會在視圖對象的$el元素范圍內(nèi)進行查找, 因此會提高匹配效率 $: function (selector) { return this.$el.find(selector); }, // 初始化方法, 在對象被實例化后自動調(diào)用 initialize: function () {}, // render方法與initialize方法類似, 默認沒有實現(xiàn)任何邏輯 // 一般會重載該方法, 以實現(xiàn)對視圖中元素的渲染 render: function () { // 返回當前視圖對象, 以支持方法的鏈式操作 // 因此如果重載了該方法, 建議在方法最后也返回視圖對象(this) return this; }, // 移除當前視圖的$el元素 remove: function () { // 通過調(diào)用jQuery或Zepto的remove方法, 因此在第三方庫中會同時移除該元素綁定的所有事件和數(shù)據(jù) this.$el.remove(); return this; }, // 根據(jù)傳入的標簽名稱, 屬性和內(nèi)容, 創(chuàng)建并返回一個DOM元素 // 該方法用于在內(nèi)部創(chuàng)建this.el時自動調(diào)用 make: function (tagName, attributes, content) { // 根據(jù)tagName創(chuàng)建元素 var el = document.createElement(tagName); // 設(shè)置元素屬性 if (attributes) $(el).attr(attributes); // 設(shè)置元素內(nèi)容 if (content) $(el).html(content); // 返回元素 return el; }, // 為視圖對象設(shè)置標準的$el及el屬性, 該方法在對象創(chuàng)建時被自動調(diào)用 // $el是通過jQuery或Zepto創(chuàng)建的對象, el是標準的DOM對象 setElement: function (element, delegate) { // 如果已經(jīng)存在了$el屬性(可能是手動調(diào)用了setElement方法切換視圖的元素), 則取消之前對$el綁定的events事件(詳細參考undelegateEvents方法) if (this.$el) this.undelegateEvents(); // 將元素創(chuàng)建為jQuery或Zepto對象, 并存放在$el屬性中 this.$el = (element instanceof $) ? element : $(element); // this.el存放標準的DOM對象 this.el = this.$el[0]; // 如果設(shè)置了delegate參數(shù), 則為元素綁定視圖中events參數(shù)設(shè)置的事件 // 在視圖類的構(gòu)造函數(shù)中, 已經(jīng)調(diào)用了delegateEvents方法進行綁定, 因此在初始化的_ensureElement方法中調(diào)用setElement方法時沒有傳遞delegate參數(shù) // 在手動調(diào)用setElemen方法設(shè)置視圖元素時, 允許傳遞delegate綁定事件 if (delegate !== false) this.delegateEvents(); return this; }, // 為視圖元素綁定事件 // events參數(shù)配置了需要綁定事件的集合, 格式如('事件名稱 元素選擇表達式' : '事件方法名稱/或事件函數(shù)'): // { // 'click #title': 'edit', // 'click .save': 'save' // 'click span': function() {} // } // 該方法在視圖對象初始化時會被自動調(diào)用, 并將對象中的events屬性作為events參數(shù)(事件集合) delegateEvents: function (events) { // 如果沒有手動傳遞events參數(shù), 則從視圖對象獲取events屬性作為事件集合 if (!(events || (events = getValue(this, 'events')))) return; // 取消當前已經(jīng)綁定過的events事件 this.undelegateEvents(); // 遍歷需要綁定的事件列表 for (var key in events) { // 獲取需要綁定的方法(允許是方法名稱或函數(shù)) var method = events[key]; // 如果是方法名稱, 則從對象中獲取該函數(shù)對象, 因此該方法名稱必須是視圖對象中已定義的方法 if (!_.isFunction(method)) method = this[events[key]]; // 對無效的方法拋出一個錯誤 if (!method) throw new Error('Method "' + events[key] + '" does not exist'); // 解析事件表達式(key), 從表達式中解析出事件的名字和需要操作的元素 // 例如 'click #title'將被解析為 'click' 和 '#title' 兩部分, 均存放在match數(shù)組中 var match = key.match(delegateEventSplitter); // eventName為解析后的事件名稱 // selector為解析后的事件元素選擇器表達式 var eventName = match[1], selector = match[2]; // bind方法是Underscore中用于綁定函數(shù)上下文的方法 // 這里將method事件方法的上下文綁定到當前視圖對象, 因此在事件被觸發(fā)后, 事件方法中的this始終指向視圖對象本身 method = _.bind(method, this); // 設(shè)置事件名稱, 在事件名稱后追加標識, 用于傳遞給jQuery或Zepto的事件綁定方法 eventName += '.delegateEvents' + this.cid; // 通過jQuery或Zepto綁定事件 if (selector === '') { // 如果沒有設(shè)置子元素選擇器, 則通過bind方法將事件和方法綁定到當前$el元素本身 this.$el.bind(eventName, method); } else { // 如果當前設(shè)置了子元素選擇器表達式, 則通過delegate方式綁定 // 該方法將查找當前$el元素下的子元素, 并將于selector表達式匹配的元素進行事件綁定 // 如果該選擇器的元素不屬于當前$el的子元素, 則事件綁定無效 this.$el.delegate(selector, eventName, method); } } }, // 取消視圖中當前元素綁定的events事件, 該方法一般不會被使用 // 除非調(diào)用delegateEvents方法重新為視圖中的元素綁定事件, 在重新綁定之前會清除當前的事件 // 或通過setElement方法重新設(shè)置試圖的el元素, 也會清除當前元素的事件 undelegateEvents: function () { this.$el.unbind('.delegateEvents' + this.cid); }, // 在實例化視圖對象時設(shè)置初始配置 // 將傳遞的配置覆蓋到對象的options中 // 將配置中與viewOptions列表相同的配置復制到對象本身, 作為對象的屬性 _configure: function (options) { // 如果對象本身設(shè)置了默認配置, 則使用傳遞的配置進行合并 if (this.options) options = _.extend({}, this.options, options); // 遍歷viewOptions列表 for (var i = 0, l = viewOptions.length; i < l; i++) { // attr依次為viewOptions中的屬性名 var attr = viewOptions[i]; // 將options配置中與viewOptions相同的配置復制到對象本身, 作為對象的屬性 if (options[attr]) this[attr] = options[attr]; } // 設(shè)置對象的options配置 this.options = options; }, // 每一個視圖對象都應該有一個el元素, 作為渲染的元素 // 在構(gòu)造視圖時, 可以設(shè)置對象的el屬性來指定一個元素 // 如果設(shè)置的el是一個字符串或DOM對象, 則通過$方法將其創(chuàng)建為一個jQuery或Zepto對象 // 如果沒有設(shè)置el屬性, 則根據(jù)傳遞的tagName, id和className, 調(diào)用mak方法創(chuàng)建一個元素 // (新創(chuàng)建的元素不會被添加到文檔樹中, 而始終存儲在內(nèi)存, 當處理完畢需要渲染到頁面時, 一般會在重寫的render方法, 或自定義方法中, 訪問this.el將其追加到文檔) // (如果我們需要向頁面添加一個目前還沒有的元素, 并且需要為其添加一些子元素, 屬性, 樣式或事件時, 可以通過該方式先將元素創(chuàng)建到內(nèi)存, 在完成所有操作之后再手動渲染到文檔, 可以提高渲染效率) _ensureElement: function () { // 如果沒有設(shè)置el屬性, 則創(chuàng)建默認元素 if (!this.el) { // 從對象獲取attributes屬性, 作為新創(chuàng)建元素的默認屬性列表 var attrs = getValue(this, 'attributes') || {}; // 設(shè)置新元素的id if (this.id) attrs.id = this.id; // 設(shè)置新元素的class if (this.className) attrs['class'] = this.className; // 通過make方法創(chuàng)建元素, 并調(diào)用setElement方法將元素設(shè)置為視圖所使用的標準元素 this.setElement(this.make(this.tagName, attrs), false); } else { // 如果設(shè)置了el屬性, 則直接調(diào)用setElement方法將el元素設(shè)置為視圖的標準元素 this.setElement(this.el, false); } } });// 實現(xiàn)對象繼承的函數(shù), 該函數(shù)內(nèi)部使用inherits實現(xiàn)繼承, 請參考inherits函數(shù) var extend = function (protoProps, classProps) { // child存儲已經(jīng)實現(xiàn)繼承自當前類的子類(Function) // protoProps設(shè)置子類原型鏈中的屬性 // classProps設(shè)置子類的靜態(tài)屬性 var child = inherits(this, protoProps, classProps); // 將extend函數(shù)添加到子類, 因此調(diào)用子類的extend方法便可實現(xiàn)對子類的繼承 child.extend = this.extend; // 返回實現(xiàn)繼承的子類 return child; }; // 為Model, Collection, Router和View類實現(xiàn)繼承機制 Model.extend = Collection.extend = Router.extend = View.extend = extend;// Backbone.sync 與服務器異步交互相關(guān) // -------------// 定義Backbone中與服務器交互方法和請求type的對應關(guān)系 var methodMap = { 'create': 'POST', 'update': 'PUT', 'delete': 'DELETE', 'read': 'GET' };// sync用于在Backbone中操作數(shù)據(jù)時, 向服務器發(fā)送請求同步數(shù)據(jù)狀態(tài), 以建立與服務器之間的無縫連接 // sync發(fā)送默認通過第三方庫(jQuery, Zepto等) $.ajax方法發(fā)送請求, 因此如果要調(diào)用狀態(tài)同步相關(guān)的方法, 需要第三方庫支持 // Backbone默認定義了一套與服務器交互的數(shù)據(jù)格式(JSON)和結(jié)構(gòu), 服務器響應的數(shù)據(jù)應該遵循該約定 // 如果數(shù)據(jù)不需要保存在服務器, 或與服務器交互方法, 數(shù)據(jù)格式結(jié)構(gòu)與約定不一致, 可以通過重載sync方法實現(xiàn) // @param {String} method 在Backbone中執(zhí)行的CRUD操作名稱 // @param {Model Obejct} model 需要與服務器同步狀態(tài)的模型對象 // @param {Object} options Backbone.sync = function (method, model, options) { // 根據(jù)CRUD方法名定義與服務器交互的方法(POST, GET, PUT, DELETE) var type = methodMap[method];// options默認為一個空對象 options || (options = {});// params將作為請求參數(shù)對象傳遞給第三方庫的$.ajax方法 var params = { // 請求類型 type: type, // 數(shù)據(jù)格式默認為json dataType: 'json' };// 如果在發(fā)送請求時沒有在options中設(shè)置url地址, 將會通過模型對象的url屬性或方法來獲取url // 模型所獲取url的方式可參考模型的url方法 if (!options.url) { // 獲取請求地址失敗時會調(diào)用urlError方法拋出一個錯誤 params.url = getValue(model, 'url') || urlError(); }// 如果調(diào)用create和update方法, 且沒有在options中定義請求數(shù)據(jù), 將序列化模型中的數(shù)據(jù)對象傳遞給服務器 if (!options.data && model && (method == 'create' || method == 'update')) { // 定義請求的Content-Type頭, 默認為application/json params.contentType = 'application/json'; // 序列化模型中的數(shù)據(jù), 并作為請求數(shù)據(jù)傳遞給服務器 params.data = JSON.stringify(model.toJSON()); }// 對于不支持application/json編碼的瀏覽器, 可以通過設(shè)置Backbone.emulateJSON參數(shù)為true實現(xiàn)兼容 if (Backbone.emulateJSON) { // 不支持Backbone.emulateJSON編碼的瀏覽器, 將類型設(shè)置為application/x-www-form-urlencoded params.contentType = 'application/x-www-form-urlencoded'; // 將需要同步的數(shù)據(jù)存放在key為"model"參數(shù)中發(fā)送到服務器 params.data = params.data ? { model: params.data } : {}; }// 對于不支持REST方式的瀏覽器, 可以設(shè)置Backbone.emulateHTTP參數(shù)為true, 以POST方式發(fā)送數(shù)據(jù), 并在數(shù)據(jù)中加入_method參數(shù)標識操作名稱 // 同時也將發(fā)送X-HTTP-Method-Override頭信息 if (Backbone.emulateHTTP) { // 如果操作類型為PUT或DELETE if (type === 'PUT' || type === 'DELETE') { // 將操作名稱存放到_method參數(shù)發(fā)送到服務器 if (Backbone.emulateJSON) params.data._method = type; // 實際以POST方式進行提交, 并發(fā)送X-HTTP-Method-Override頭信息 params.type = 'POST'; params.beforeSend = function (xhr) { xhr.setRequestHeader('X-HTTP-Method-Override', type); }; } }// 對非GET方式的請求, 將不對數(shù)據(jù)進行轉(zhuǎn)換, 因為傳遞的數(shù)據(jù)可能是一個JSON映射 if (params.type !== 'GET' && !Backbone.emulateJSON) { // 通過設(shè)置processData為false來關(guān)閉數(shù)據(jù)轉(zhuǎn)換 // processData參數(shù)是$.ajax方法中的配置參數(shù), 詳細信息可參考jQuery或Zepto相關(guān)文檔 params.processData = false; }// 通過第三方庫的$.ajax方法向服務器發(fā)送請求同步數(shù)據(jù)狀態(tài) // 傳遞給$.ajax方法的參數(shù)使用extend方法將options對象中的參數(shù)覆蓋到了params對象, 因此在調(diào)用sync方法時設(shè)置了與params同名的options參數(shù), 將以options為準 return $.ajax(_.extend(params, options)); }; // 包裝一個統(tǒng)一的模型錯誤處理方法, 會在模型與服務器交互發(fā)生錯誤時被調(diào)用 // onError是在調(diào)用與服務器的交互方法時(如fetch, destory等), options中指定的自定義錯誤處理函數(shù) // originalModel是發(fā)生錯誤的模型或集合對象 Backbone.wrapError = function (onError, originalModel, options) { return function (model, resp) { resp = model === originalModel ? resp : model;if (onError) { // 如果設(shè)置了自定義錯誤處理方法, 則調(diào)用自定義方法 onError(originalModel, resp, options); } else { // 默認將觸發(fā)發(fā)生錯誤的模型或集合的error事件 originalModel.trigger('error', originalModel, resp, options); } }; }; // Helpers 定義一些供Backbone內(nèi)部使用的幫助函數(shù) // -------// ctor是一個共享的空函數(shù), 用于在調(diào)用inherits方法實現(xiàn)繼承時, 承載父類的原型鏈以便設(shè)置到子類原型中 var ctor = function () {}; // 實現(xiàn)OOP繼承特性 // @param {Function} parent 被繼承的父類Function // @param {Object} protoProps 擴展子類原型中的屬性(或方法)對象 // @param {Object} staticProps 擴展子類的靜態(tài)屬性(或方法)對象 var inherits = function (parent, protoProps, staticProps) { var child;// 如果在protoProps中指定了"constructor"屬性, 則"constructor"屬性被作為子類的構(gòu)造函數(shù) // 如果沒有指定構(gòu)造子類構(gòu)造函數(shù), 則默認調(diào)用父類的構(gòu)造函數(shù) if (protoProps && protoProps.hasOwnProperty('constructor')) { // 使用"constructor"屬性指定的子類構(gòu)造函數(shù) child = protoProps.constructor; } else { // 使用父類的構(gòu)造函數(shù) child = function () { parent.apply(this, arguments); }; }// 將父類中的靜態(tài)屬性復制為子類靜態(tài)屬性 _.extend(child, parent);// 將父類原型鏈設(shè)置到子類的原型對象中, 子類以此繼承父類原型鏈中的所有屬性 ctor.prototype = parent.prototype; child.prototype = new ctor();// 將protoProps對象中的屬性復制到子類的原型對象, 子類以此擁有protoProps中的屬性 if (protoProps) _.extend(child.prototype, protoProps);// 將staticProps對象中的屬性復制到子類的構(gòu)造函數(shù)本身, 將staticProps中的屬性作為子類的靜態(tài)屬性 if (staticProps) _.extend(child, staticProps);// 在復制父類原型鏈到子類原型時, 子類原型鏈中的構(gòu)造函數(shù)已經(jīng)被覆蓋, 因此此處重新設(shè)置子類的構(gòu)造函數(shù) child.prototype.constructor = child;// 如果子類設(shè)置了constructor屬性, 則子類構(gòu)造函數(shù)為constructor指定的函數(shù) // 如果需要在子類構(gòu)造函數(shù)中調(diào)用父類構(gòu)造函數(shù), 則需要在子類構(gòu)造函數(shù)中手動調(diào)用父類的構(gòu)造函數(shù) // 此處將子類的__super__屬性指向父類的構(gòu)造函數(shù), 方便在子類中調(diào)用: 子類.__super__.constructor.call(this); child.__super__ = parent.prototype;// 返回子類 return child; }; // 獲取對象prop屬性的值, 如果prop屬性是一個函數(shù), 則執(zhí)行并返回該函數(shù)的返回值 var getValue = function (object, prop) { // 如果object為空或object不存在prop屬性, 則返回null if (!(object && object[prop])) return null; // 返回prop屬性值, 如果prop是一個函數(shù), 則執(zhí)行并返回該函數(shù)的返回值 return _.isFunction(object[prop]) ? object[prop]() : object[prop]; }; // 拋出一個Error異常, 在Backbone內(nèi)部會頻繁執(zhí)行, 因此獨立為一個公共函數(shù) var urlError = function () { throw new Error('A "url" property or function must be specified'); }; }).call(this);

?

轉(zhuǎn)載于:https://www.cnblogs.com/wpgraceii/p/6511667.html

總結(jié)

以上是生活随笔為你收集整理的Backbone.js源码解读(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产高清无遮挡 | 欧美另类自拍 | 欧美1区二区 | 欧美亚洲久久 | 不卡视频一区二区 | 国产一区二区视频在线播放 | 国产又黄又粗 | 成人黄色在线播放 | av免费资源 | 草碰在线视频 | 亚洲一本大道 | 一区二区精品国产 | 激情综合在线 | 美女免费网站黄 | av在线网址大全 | 亚洲精品高清视频 | 亚洲高清不卡av | 国产高清永久免费 | 免费av在线网站 | 免费看的黄色网 | av热热 | 五月婷婷久久丁香 | 国产精品视频永久免费播放 | 老司机一区二区三区 | 黄色一级理论片 | 国产福利精品一区 | 日本黄色小视频 | 亚洲第一中文字幕在线观看 | 亚洲人精品午夜 | 欧美成人精品二区三区99精品 | free性满足hd性video | 亚洲自拍色| 粉嫩在线一区二区三区视频 | 国产精品美女www | 日韩欧美亚洲日产国产 | 影音先锋玖玖 | 天天爽夜夜爽 | 国产精品久久国产精品99 gif | 亚洲精品乱码久久久久 | 一卡二卡三卡在线 | 成人在线高清视频 | 主奴调教重口喝尿踩脸扇耳光 | 国产精品av免费在线观看 | 国产成人黄色 | 字母圈紧缚 | 99久久婷婷国产综合精品 | 在线视频 一区 二区 | 黑人巨大精品 | 午夜xx | 亚洲高清影视 | 国产成人 综合 亚洲 | 精品成人国产 | 欧美野外猛男的大粗鳮 | 成人天堂网| 制服丝袜中文字幕电影 | 亚洲精品一区二区三区四区五区 | 日韩美女免费视频 | 久久久精品蜜桃 | 久久色成人| 亚洲国产精品成人综合 | 18中文字幕| 99久久精品免费 | 国产视频网站在线观看 | 高h文在线| 强行挺进白丝老师翘臀网站 | 国产精品视频自拍 | 久久综合久久综合久久综合 | 色视频在线免费 | 欧美一区二区视频在线观看 | 亚洲激情啪啪 | 久久亚洲二区 | 日韩资源网 | 春意午夜影院 | 国产精品久久久久久久久久ktv | 中文字幕久久精品 | 国产亚洲欧美一区 | 日韩免费av一区二区三区 | 三级在线中文字幕 | 亚洲精品免费看 | 久久精品电影 | 狠狠综合久久av | 欧美一级爽aaaaa大片 | 国产男男gay互吃浪小辉 | 日韩中文在线不卡 | 国产三区在线观看 | 欧美亚洲网站 | 91极品视频在线 | 在线一区av| 黄色在线免费看 | 在线看国产精品 | 深夜福利黄 | 综合久草视频 | 欧美成人一级视频 | 年下总裁被打光屁股sp | av影城 | 四虎精品视频 | 亚洲精品v天堂中文字幕 | 六月婷婷久久 | 成人在线综合 | 最新国产在线拍揄自揄视频 | 黄一区二区三区 | 老师张开让我了一夜av | 国产福利免费在线观看 | 国产超碰97 | 免费黄网站在线看 | 成人a级免费电影 | 超大gaygays免费观看 | 欧美国产一区二区 | 黄色av网址在线观看 | 涩涩在线观看 | 精品少妇一区二区三区 | 国产福利av| 在线观看成人av电影 | 亚洲一区二区三区在线视频 | 黑人又粗又长 | 91视频色 | 中文字幕在线视频一区 | 夜夜激情 | 国产在线更新 | 亚洲午夜久久 | 成人免费网址 | 天天爽天天操 | 在线观看福利电影 | 成人免费一区 | 少妇太爽了 | 欧美1区二区 | 俺也去狠狠爱 | 国产成人三级在线观看 | 欧美一区二区精品在线 | 伊人久久大香线蕉av一区 | 亚洲aaaaaa| 女人裸体又黄图 | 日韩视频一区在线观看 | 久久福利综合 | 欧美色拍| av黄色av网站 | 日韩av在线网站 | 亚洲人人网| 激情欧美一区二区三区 | 福利影院导航 | 在线观看 亚洲 | 欧美日韩在线播放三区四区 | 大白屁股一区二区视频 | 一区二区三区国产 | 欧洲女同| 国产一级免费视频 | 亚洲国产一二三 | 激情久久一区二区 | 国产一区二区在线看 | 国产在线第三页 | 在线看国产精品 | 国产亚洲女人久久久久毛片 | 亚洲 精品 综合 精品 自拍 | 欧美天堂在线观看 | 五月婷婷激情综合网 | 成人激情综合 | 黄色片视频在线观看 | 日本成人小视频 | 奇米四色777| 亚洲成人教育av | 96精品视频在线 | 边吃奶边做视频 | 一区二区福利视频 | 蜜桃视频一区二区三区在线观看 | 在线欧美视频 | 精品国产一区久久 | 亚洲精品永久免费视频 | 国产欧美日韩视频在线观看 | www欧美在线观看 | 国产激情在线播放 | 波多野结衣视频在线播放 | 手机看片久久 | 精品动漫3d一区二区三区免费版 | 亚洲成人av免费 | 日本不卡1 | 日韩精品久久久久久久玫瑰园 | 美女扒开尿口给男人捅 | 欧美巨大另类极品videosbest | free性暴力videos糟蹋 | 亚洲a视频| 狠狠操天天射 | 一本色道久久88综合日韩精品 | 天天躁夜夜躁狠狠躁2022 | 中文字幕亚洲精品 | 精品国产免费视频 | 午夜神马影院 | 亚洲欧美视频一区二区三区 | 欧美另类交人妖 | 久久精品亚洲 | 丝袜制服国产在线 | 午夜资源在线 | 亚洲激情午夜 | 亚洲黄网站在线观看 | 美国毛片网站 | 人与禽一级全黄 | 欧洲精品久久久 | 国产无遮挡又黄又爽免费网站 | 精品一区二区三区三区 | 免费a v在线播放 | 日韩综合在线 | 欧美日韩伦理一区二区 | 草莓视频污在线观看 | 日韩欧美一区在线 | 91高清在线看 | 免费观看的毛片 | 日韩一区中文 | 日本精品专区 | 国产91丝袜在线播放 | 激情婷婷小说 | 激情视频黄色 | 久久无码av三级 | 久久精品99久久 | 久久国产夜色精品鲁鲁99 | 久久久久久久久电影 | 免费视频99 | 日韩在线麻豆 | 天天澡天天狠天天天做 | 欧美日韩国产麻豆 | 欧美精品做受xxx性少妇 | 绿帽一区| 亚洲欧美第一页 | 国产精品电影一区 | 日本成人在线一区 | 日本高清在线观看视频 | 成人在线电影网站 | 免费色片在线观看 | 亚洲国产小视频在线观看 | 成年人免费看片 | 亚洲一区免费视频 | 日韩激情图区 | 欧美激情综合色综合啪啪五月 | 久久久一区二区三区 | 美女久久精品 | 国产精品久久久久婷婷二区次 | 亚洲一区 久久 | 中文字幕亚洲综合 | av在线大片| 精久久久久久 | 电影在线观看免费播放高清 | 美女国产精品 | 姐姐你真棒插曲快来救救我电影 | 色片在线观看 | 日韩欧美在线不卡 | 香港色网 | 免费视频一区二区三区在线观看 | 超碰人人搞| 午夜精品一区二区三区三上悠亚 | 国产精品综合一区二区三区 | 日本中文字幕在线视频 | 国产伊人精品在线 | 亚洲色图av在线 | 日韩一区二区三区观看 | 国产夜色精品一区二区av | 日本在线视频播放 | 中文字幕第八页 | 国产精品久久久久久久9999 | 欧美成人一区二区三区在线观看 | 天堂中文资源在线 | 亚洲国产精品中文 | 37p粉嫩大胆色噜噜噜 | 日韩美女视频在线 | 美女又爽又黄 | 日本一区二区三区免费看 | 免费毛片在线 | 触手tk折磨高潮 | 亚洲精品日韩丝袜精品 | 制服丝袜中文字幕在线 | 三级视频在线播放 | 调教扩张尿孔针刺重口 | 欧美日韩一区二区在线视频 | 牛人盗摄一区二区三区视频 | 免费av导航 | 天堂久久久久久 | 精品国产一区二区三区麻豆免费观看完整版 | 今天高清视频免费看 | 欧美日韩一区二区三区视频 | 大尺度电影在线 | 美女试爆场恐怖电影在线观看 | 国产99在线播放 | 日本女人一区二区三区 | 日韩一区二区精品在线观看 | 国产视频黄色 | 亚洲国产成人在线视频 | 男人本色网站 | 日韩二级| 9色综合 | 黄色在线免费播放 | 色综合天天色 | 豆花免费跳转入口官网 | 超碰av在线免费 | 成人在线观看网址 | 壮汉被书生c到合不拢腿 | 玖玖在线精品 | 校花扒腿让我c视频 | 日本一区二区三区免费看 | 中字幕视频在线永久在线观看免费 | 91精品视频在线播放 | 裸体午夜一级视频 | 最近中文字幕在线观看 | 糖心vlog精品一区二区 | 欧美激情视频网站 | 九色 在线 | 6080亚洲精品一区二区 | 午夜精品免费视频 | 韩国污污漫画 | 老司机免费精品视频 | 制服丝袜亚洲色图 | 黑人巨大精品欧美一区二区 | 成人精品一区二区三区中文字幕 | 中文字幕人成 | 久久久欧美精品 | 台湾佬中文字幕 | 丁香五香天堂网 | 国产免费自拍视频 | 日韩免费黄色 | 国产激情久久久久 | 日韩色视频在线观看 | 免费色网站 | 女生被男生猛操 | 奇米免费视频 | 欧美人妖69xxxxxhd3d | 被黑人各种姿势猛c哭h文1 | av中文电影 | 日本人妖japanesexxx | 美国女孩毛片 | 欧美一卡二 | 欧美大片va欧美在线播放 | 天天操天天舔 | 日韩欧美国产网站 | 丁香免费视频 | 国产一级片免费看 | 免费线上av| 美女福利视频在线观看 | av直播在线观看 | 日韩美女免费观看 | 福利色播 | 精品亚洲国产成人av制服丝袜 | 精品一区二区三区免费毛片爱 | 亚洲欧美另类久久久精品2019 | 天天躁日日躁狠狠很躁 | 日韩在线网址 | 蜜臀久久99精品久久久无需会员 | 中文在线免费视频 | 精品国产第一国产综合精品 | 玖玖365资源 | 天天看高清av | av在线www| 午夜伦欧美伦电影理论片 | 国产精品久久久久久久久免费相片 | 国产视频1区 | 国产精品sm | 国产日韩精品在线观看 | 99国产高清 | 欧美一区二区网站 | 欧美日韩激情视频 | 99国产精品久久久久 | 国产剧情av在线 | 国产超碰人人爽人人做人人爱 | 欧美四级在线观看 | 小视频免费在线观看 | 久久久久中文字幕 | 精品欧美一区二区三区精品久久 | 第一综合色 | 国产免费一区视频观看免费 | 国产精品久久久久一区二区三区 | 一个人看的www网站 亚洲黑丝在线 | 久久色在线播放 | 欧美日韩久久一区二区 | 亚洲久艹| 老色鬼在线 | av一本| 国产色a在线观看 | 国产二区电影 | 91麻豆视频网站 | 色妞色视频一区二区三区四区 | 亚洲女优在线 | 永久免费的网站 | 极品少妇在线观看 | av青娱乐 | av解说在线观看 | 国产激情一区 | 亚洲国产va精品久久久不卡综合 | 亚洲精品网站在线播放gif | 免费精品视频一区二区三区 | 奇米97 | 欧美成人a视频 | 日韩久久精品一区二区三区 | 日韩深夜视频 | 久久久久久一区二区三区 | 国产传媒av在线 | 久久一区二区三区中文字幕 | 日本高清视频在线观看 | 黄色小网站在线 | 美女露出粉嫩尿囗让男人桶 | 91精品视频播放 | 91福利在线导航 | 亚洲最新| eeuss鲁片一区二区 | a级黄色录像| 久久久国产精品不卡 | 97碰碰视频| 猛男大粗猛爽h男人味 | 欧美一级大片在线免费观看 | 久久国产成人午夜av影院 | 宝贝乖h调教灌尿穿环 | 国产精品日韩一区二区 | 中文字幕精品一二三四五六七八 | 国产精品精品国产色婷婷 | 欧美日韩日日夜夜 | 比比资源av| 疯狂做受xxxx高潮欧美日本 | 欧美日韩久久久 | 中文字幕无线精品亚洲乱码一区 | 国产一级性生活视频 | 国产精品毛片久久久久久久 | 久久久久久成人精品 | 亚洲精品影片 | 国内成人免费视频 | 萝控喷水视频 | 黄色影院在线播放 | 天天插天天操天天干 | 最新中文字幕 | 成人高清在线观看 | 污污网址在线观看 | 日本一区二区三区免费观看 | 久久开心网 | 麻豆精品国产 | 波多野结衣成人在线 | 国产高清网站 | αv一区二区三区 | 涩视频在线 | 国产日韩在线不卡 | 色爱天堂| 国产亚洲精品久久久久婷婷瑜伽 | 欧美在线极品 | free性厨房hd牲bbw | 欧美福利精品 | 亚洲最新视频在线观看 | 日本黄色不卡 | 56porn在线视频| 亚洲一区二区精品在线 | 精彩视频在线看 | 丁香色av| 色婷婷综合五月 | 天天摸天天操 | 亚洲欧美福利视频 | 99re热精品 | 一区二区三区四区在线 | 久久影音先锋 | 一区二区三区免费网站 | 综合伊人av | 韩国精品福利一区二区三区 | 色老头免费视频 | 亚洲综合图色 | 91丨九色丨蝌蚪 | 成人精品在线观看 | 正在播放一区 | 日韩精品一区二区三区视频 | 丁香六月综合 | 男人操女人免费视频网站 | 女同av网站| 欧美一区二区三区电影 | 国产偷v国产偷v亚洲高清 | 麻豆视频在线看 | 久久久久久91 | 台湾佬美性中文娱乐 | 午夜精品av | 日本一区免费视频 | 国产视频一区二区三区在线观看 | 精品亚洲国产成人av制服丝袜 | 日本一级片免费看 | 欧美男人操女人 | 轻轻色在线观看 | 在线免费观看黄色av | 成人在线毛片 | 欧美香蕉视频 | 五月天.com | 亚洲视色 | 自拍av一区二区三区 | 美女扒开尿口让男人捅到爽 | 国产日韩亚洲欧美 | 91精品国产福利 | 日韩素人 | 久久久久久影视 | 精品久久久久久久久久久久久久 | 国产精彩自拍 | 久久99久久99| 66影视电影港 | 醉酒的老板gl漫画免费阅读全集 | 国产综合精品一区 | 午夜色网| 97婷婷色 | 丁香一区二区三区 | 精品日韩欧美一区二区 | 中国亚洲老头同性gay男男… | 九九色在线视频 | 欧美日韩在线不卡 | 18黄暴禁片在线观看 | 手机免费激情视频 | 欧美日韩国产二区 | 亚洲一区二区三区视频播放 | 给个网站你懂的 | 亚洲 欧美 激情 另类 校园 | 有码专区| 色综合色综合 | av中文资源在线 | 亚洲精品黄色 | 久久国产日韩欧美 | 扒开jk护士狂揉免费 | 亚一区二区 | 久久人人爽人人爽人人片亚洲 | 欧美日韩综合一区 | 欧美午夜三级 | 亚洲免费观看高清完整版在线观看 | 99看片网 | 91在线中文字幕 | 国产精品美女久久久久久 | 超碰免费在线观看 | 福利精品视频在线 | 裸身视频网站 | 国产麻豆精品一区二区 | 免费视频中文字幕 | 国产成人精品综合在线观看 | 欧美日韩高清 | 九九在线精品视频 | 久久第一页 | 欧美色爽 | 亚洲国产精品自拍 | 欧美日色 | 日本不卡视频在线 | 男男doi攻的巨猛受受视频 | 在线视频精品 | 久久国产情侣 | 日本特黄一级高清 | 国产成人自拍视频在线观看 | 国产高清在线观看 | 亚洲成人国产 | 国产精品户外野外 | 男生把裤子脱了吃我的j男男 | 国产ts人妖系列高潮 | 男生插女生免费 | 在线视频免费观看你懂的 | 老地方在线观看免费动漫 | 中文在线免费视频 | 97se狠狠狠综合亚洲狠狠 | 久久久久看片 | 欧美精品 在线视频 | 成人国产精品免费观看视频 | 成人欧美一区二区三区 | 午夜精品久久久久久久久久久 | 2018av在线| 免费看的毛片 | 午夜爱爱福利 | 成年人看毛片 | 亚洲色图在线观看 | 亚洲一区二区三区四区在线播放 | 极品探花在线 | 国产欧美日韩在线视频 | 久久激情视频免费观看 | 久草免费在线色站 | 光溜溜视频素材大全美女 | 欧美自拍在线 | 天天色天天爽 | 午夜日本在线 | 国产精品免费小视频 | 欧美黄网站 | 日韩av在线影视 | 色婷婷免费| 国产精品爽黄69天堂a | 日本wwwxxx免费 | 韩国美女主播跳舞 | 日韩久草 | 国产黄色免费 | av男人天堂av | 天天影视色香欲综合 | 日本一区免费 | 韩国禁欲系高级感电影 | 在线成人欧美 | 欧美偷拍视频 | 国产三级视频在线 | 黄色刺激视频 | 一卡二卡三卡四卡五卡 | 相亲对象是问题学生动漫免费观看 | 日韩欧美大陆 | 欧美三级韩国三级日本三斤 | 精品久久久久久久久久久院品网 | 欧美在线视频导航 | 成人激情av | 欧美色淫网站 | 色婷婷综合久久久 | 国产欧美日韩久久 | aaa国产精品 | 午夜av资源 | 中文字幕影片免费在线观看 | av成人在线电影 | 自拍偷拍福利视频 | 麻豆传媒一区 | av网址在线播放 | 欧美a视频 | 网友自拍视频 | av黄色一级片 | 久久久xxx | 亚洲欧洲中文日韩久久av乱码 | 国产做爰xxx18在线观看网站 | 麻豆网站在线观看 | 国产亚洲一区二区三区在线观看 | 国产成人精品电影 | 国产一区二区三区免费看 | 黄视频网站免费看 | 免费理论片 | 日本一级免费视频 | 又紧又大又爽精品一区二区 | 欧美日韩色婷婷 | 亚洲成av人片在www色猫咪 | 亚洲美女屁股眼交 | 懂色视频在线观看 | 在线观看你懂得 | 亚洲一区网站 | 亚洲国产精品毛片 | 不卡在线 | av第一导航 | 日韩 欧美 二区 | 森泽佳奈喷奶 | 日韩av在线播放中文字幕 | 福利网址导航大全 | 欧美成人r级一区二区三区 中文国产在线观看 | 情侣黄网站免费看 | 中文字幕久久综合 | 一二三区精品视频 | 九色视频网| 91精品在线一区 | 国产精品精品视频一区二区三区 | 一级片在线免费观看 | 超薄肉色丝袜一区二区 | 欧美日韩一区二区三区在线免费观看 | 手机在线免费看av | 成人黄色片网站 | 97干在线 | 91毛片网站 | 午夜影院免费看 | 高清av网站| 91九色夫妻 | 快猫成人短视频 | а√天堂中文在线资源8 | 日韩激情视频在线 | 绿帽社区 | 你懂的国产 | 国产传媒中文字幕 | 国产日韩一区二区三区 | 1024视频污 | 国产v精品| 国产福利在线播放 | 美女的让男人桶到爽直播 | av性网站 | 国产v在线 | 成年网站 | 91日本视频在线 | 久久精品国产99国产精品 | 黄色大片网站在线观看 | 麻豆免费在线 | 狠狠干夜夜爱 | 女人裸体又黄 | 99黄视频 | 亚洲精品中文字幕在线 | 精品视频黄色 | 翔田千里在线播放 | 四季av一区二区凹凸精品 | 日韩av大全 | 日本男人天堂 | 欧美在线视频播放 | 欧洲成人av| 亚洲国产欧美久久 | 人人做人人爽人人爱 | 久久福利网| 91国内在线视频 | 一本在线 | 成人黄色av网 | 亚洲成a人片 | 国产成人免费 | 天天人人 | 一区二区三区国产在线观看 | 日韩中文字幕在线 | 理论片大全免费理伦片 | 探花国产精品 | 一区二区国产精品视频 | 国产婷婷色一区二区三区四区 | av久久色 | 三级视频网站在线 | 91亚洲国产成人精品一区二区三 | 欧美性色综合 | 丰满少妇又紧又爽又粗 | 91碰在线视频 | 国产精品免费一区二区三区 | 成品人片a91观看入口888 | 久久亚洲一区二区三区四区五区高 | av一区二区三区在线 | 亚洲一区 | 在线播放亚洲 | 国产一级特黄 | 巨乳女教师的诱惑 | 国产99久久精品一区二区永久免费 | 视频在线一区二区 | 猛男大粗猛爽h男人味 | 正在播放欧美一区 | 日韩一区在线看 | 美女自卫慰免费视频www免费 | 欧美啪啪网站 | 黑森林福利视频导航 | 欧美有码在线 | 亚洲bt在线 | 日韩黄色片 | 国产在线一区观看 | 涩涩在线播放 | 日韩av小说| 欧美婷婷久久 | 日日夜夜一区 | 日韩精品一二 | 中文字幕一区二区三区四区 | 成人污污在线 | 91精品国产99久久久久久红楼 | 中文字幕影片免费在线观看 | 少妇一级淫片 | 国产成人午夜 | 老妇做爰xxxxhd老少配 | 日韩精品久久一区 | 黄色片视频免费 | 国模视频一区二区 | 中文字幕高清一区二区 | 韩国自拍一区 | 蜜桃av久久久亚洲精品 | 在线观看免费av网 | 中文字幕9999| 欧美三级视频 | 日韩精品一区二区三区视频在线观看 | 精品成人在线 | 二区三区中文字幕 | 夜夜爽夜夜叫夜夜高潮漏水 | 午夜精品偷拍 | 国产精品国产三级国产专播品爱网 | 亚洲精品无人区 | 久久精品国产999大香线蕉 | 农村搞破鞋视频大全 | 黄色网免费 | 亚洲大片在线 | 国产欧美一区二区三区视频 | 欧美一级片在线观看 | 男女瑟瑟视频 | 日本一级理论片在线大全 | 无遮挡免费网站 | 99在线精品观看 | 激情国产一区 | 粉嫩aⅴ一区二区三区四区五区 | 俺也去五月天 | 天天草夜夜操 | 黄污视频在线免费观看 | 少妇做爰免费理伦电影 | 超碰天天| 欧美老女人xx | 国模大尺度视频 | 国产一区二区高清 | 欧美 日本 国产 | 秘密基地在线观看完整版免费 | 欧美日韩综合视频 | 国产精品bbbbxxxx | 欧美精品18videosex性欧美 | gai免费观看网站 | 国产精品一区视频 | 欧美激情三区 | 日韩精品一二三区 | 久久国产成人 | 色呦呦网站入口 | 精品欧美视频 | 91免费版网站在线观看 | 又黄又刺激的视频 | 精品一区二区三区在线观看 | 美女在线免费视频 | 激情六月综合 | 成年人av | 色七七桃花综合影院 | av在线一区二区三区 | gogo午夜高清免费摄影 | 欧美性猛交xxxx | 影音先锋美女 | 小泽玛利亚在线 | 国产一区二区三区色淫影院 | 色九月婷婷 | av地址在线 | 久久久久久欧美 | 久久久久国产精品厨房 | 日本r级电影在线观看 | 浮力影院国产第一页 | 黄色爽视频 | 一本一道久久a久久精品综合 | 国内精品久久久久影院薰衣草 | 黄色成人在线播放 | 久久综合88中文色鬼 | 精品在线观看国产 | 免费在线观看av网 | 日本护士毛茸茸体内精 | 午夜毛片电影 | 成人国产精品一区二区 | 国产粉嫩在线观看 | 国产精品网站视频 | 免费观看成人av | 免费萌白酱国产一区二区三区 | 伊人久久大香线蕉 | 桃色伊人| 久久久www成人免费精品张筱雨 | 男人的天堂2019 | 色片在线观看 | 免费久久精品 | 日韩精品999 | 国产精品免费在线播放 | 久久九精品 | 激情网站免费 | 麻豆精品精华液 | 总裁憋尿呻吟双腿大开憋尿 | 男人天堂网在线视频 | 国产一区二区三区视频免费 | 福利网站在线观看 | 欧美成人精精品一区二区频 | 尤物在线网址 | 五月综合激情 | 亚洲成av人乱码色午夜 | 夜夜嗨av一区二区三区免费区 | 欧美精品1区2区 | 欧美污网站| 性激烈视频在线观看 | 免费网站黄色 | a√天堂在线 | 亚洲麻豆av| 美女精品在线 | 五月婷婷俺来也 | 伊人久久婷婷 | 双乳被四个男人吃奶h文 | 中文字幕免费在线看 | 精品日韩一区二区三区 | 久久免费一区 | 苍井优三级在线观看 | 男女男精品视频 | 日本二区| 深夜福利电影 | 国产传媒欧美日韩成人 | 91久久精品一区二区二区 | 中文字幕无线精品亚洲乱码一区 | 在线观看h片 | 成人污污在线 | 成人精品一二区 | 国产ts人妖一区二区 | 五月婷婷丁香六月 | 国产91清纯白嫩初高中在线观看 | 一区欧美 | 免费福利视频网站 | av片网站 | 日韩成人激情 | 国产精品久久久久久久久久妞妞 | www.男人天堂 | 国产日韩二区 | 成人网视频 | 久久久久久黄色 | 亚洲精品一区在线观看 | 大尺度床戏揉捏胸视频 | 欧美一区二区三区四区视频 | 日本五十路电影 | 曰本一区二区 | 国产精品老女人精品视频 | 国产精品一区二区免费看 | 日韩欧美你懂的 | 欧美一区二区免费视频 | 国产成人精品影视 | 亚洲免费婷婷 | 精品国产乱码久久久久久浪潮 | 日本美女一区二区三区 | 国产欧美一区二区精品忘忧草 | 欧美激情国产日韩精品一区18 | 国产传媒一区二区 | 久久精品二区 | 桃色av网站 | 国产精伦一区二区三区 | 在线一区欧美 | 欧美一区二区美女 | 国产性猛交xxxⅹ交酡全过程 | 亚洲国产成人va在线观看天堂 | 欧美日韩五月天 | 国产精品久久久久久久久久久不卡 | 午夜性刺激免费视频 | 99re这里只有| 69性影院 | 越南午夜性猛交xxxx | 激情小说网站 | 黄色av网站免费看 | 欧美精品观看 | 精品国产伦一区二区三区观看方式 | 日韩小视频在线 | 国产精品夜间视频香蕉 | 久久亚洲精品国产亚洲老地址 | 日韩免费av在线 | 美女1区2区 | 粗大黑人巨茎大战欧美成人 | 欧洲av导航| 波多野结衣丝袜 | 日本国产在线视频 | 好爽…又高潮了免费毛片 | 裸体网站视频 | 免费av网页 | 亚洲综合在线一区二区三区 | 久播影院在线观看 | 97香蕉超级碰碰久久免费软件 | 亚洲va久久 | 欧美一区二区三区成人 | 日韩一区二区三区电影 | 涩涩视频在线观看 | chien国产乱露脸对白 | 亚洲美女影院 | 亚洲一二三四在线 | 欧美日韩在线播放 | 成人一二三区 | 91在线观看 | 日韩有码一区 | 日韩性生活视频 | 超碰人体 | 午夜神马伦理片 | 哪里可以看黄色 | 香蕉视频网址 | 亚洲区 欧美区 | 91黄色免费看 | 天天干天天爽 | 91久久精品一区二区三 | 欧洲av一区 | 在线观看三级电影 | 国产精品三级 | 国产高清久久久 | 国产精品一级二级三级 | 国内外成人免费激情在线视频 | 成人黄色片在线观看 | 99re免费视频精品全部 | 色婷婷综合久久久中文字幕 | 狠色综合| 免费人成在线观看视频播放 | 在线观看二区 | 日本女人一区二区三区 | 国产一区二区网址 | 国产麻豆视频一区 | 大波妞av影院 | 欧美高清在线播放 | 日韩精品在线免费观看视频 | 激情视频小说 | 日韩av一区二区三区在线 | 网站免费在线观看 | 超碰在线最新 | 亚洲 欧美 国产 另类 | 捆绑凌虐一区二区三区 | 黄色小视频入口 | 免费观看xxx在线观看下载 | 欧美大胆视频 | 美女瑟瑟网站 | 欧美色网络 | 久久视频精品在线 | 伊人天天| 国产探花在线精品一区二区 | 免费av网址在线观看 | 欧美 亚洲 另类 激情 另类 | 激情小说在线观看 | 超碰97在线免费 | 一区二区三区免费看视频 | av在线资源| 精品中文字幕在线 | 午夜视频福利免费 | 国语free性xxxxx按摩 | 日韩免费在线播放 | 国产成人在线播放 | 日韩av影音| 色综合天天综合色综合av | 日韩短视频 | 在线观看的黄色 | 欧美精品成人一区二区在线观看 | 91桃色在线观看 | 日本乳汁视频 | 在线a视频| 污视频在线播放 | 一区二区三区毛片 | 精久久久| 在线免费小视频 | 91麻豆国产自产在线观看 | 激情网站在线播放 | 伊人影院在线观看 | www.成人精品免费网站青椒 | 国产精品一区二区久久久久 | 草草导航 | a级片在线免费 | 国产精品视频在线看 | 精品国产31久久久久久 | 欧美三四区| 99视频一区二区三区 | 精品一区二区日韩 | 天天夜碰日日摸日日澡性色av | 成人免费看的视频 | 日本中文字幕中出 | 亚洲乱码日产精品bd | 青青青在线视频 | 九色porn| 欧美日一区二区三区 | 一边顶弄一边接吻 | 婷婷成人综合 | 丰满饥渴老女人hd | 87福利视频| 国产黄色免费观看 | 一区二区三区亚洲 | 爱的色放韩国电影 | 丁香六月五月婷婷 | 亚洲欧美视频在线 | 欧美日韩中文国产 | 日韩美女在线视频 | 色天天综合 | 亚洲特黄一级片 | 国产91清纯白嫩初高中在线观看 | 欧美精品自拍 | 欧美激情不卡 | 亚洲男人的天堂在线 | 中文字幕在线影院 | 宝贝乖~胸罩脱了让我揉你的胸 | 亚洲美女视频网站 | 极品91尤物被啪到呻吟喷水 | 少妇做爰k8经典 | 91精品国产91久久 | 黄网站色视频免费观看 | 日韩国产在线观看一区 | av人人爽 | 老头巨大又粗又长xxxxx | 成人激情视频在线播放 | 亚洲深夜福利视频 | 欧美一区二区黄色 | 亚洲黄色在线看 | 免费黄色美女网站 | 女王人厕视频2ⅴk | 国产精品欧美一区喷水 | 国产精品精品视频 | h小视频在线观看 | 免费看片视频 | 久久久久亚洲av毛片大全 | 91人体视频 | 国产午夜性春猛交ⅹxxx | 今天高清视频在线观看播放 | 亚洲大胆人体 | 国产成人免费av | 日韩一区av在线 | 久久中文精品视频 | 国产精品自在线 | 不卡av在线 | 亚洲国产成人在线 | 欧美午夜精品一区 | 一级二级三级国产 | 黑丝美女av | 婷婷一区二区三区 | av老司机在线观看 | 欧美精品日韩一区 | 日韩精品在线电影 | 影音先锋资源av | 欧美亚洲国产一区二区三区 | 在线观看视频欧美 | 亚洲 欧美 日韩 综合 | 中文字幕制服丝袜一区二区三区 | 胸奶好大好紧好湿好爽 | 少妇精品视频一区二区免费看 | 久久久久久久久中文字幕 | 成人福利网站在线观看 | 国产69精品久久久 | 六十路在线观看 | 午夜影院一区 | 男人操女人逼网站 | 久久婷婷丁香 | 亚洲黄色一级 | 国产主播精品 | 桃色视频免费在线观看 | 国产色综合天天综合网 | 日本福利视频一区 | 中文字幕在线有码 | 久热av在线 | 国产一区二区三区日韩 | 精品91久久久久 | 亚洲第一视频 | 中文字幕不卡在线 | 大黑人交xxx极品hd | 久在线观看视频 | 日韩成人精品视频 | 午夜男人视频在线观看 | 丝袜人妖 | 欧产日产国产精品视频 | 天堂av电影在线观看 | 色成人综合网 | 国产欧美精品区一区二区三区 | 国产淫 | 爽好大快深点视频网站 | 日本午夜激情视频 | 337p日本大胆 | 国产久在线 | 久久久久国产一区二区三区四区 | 水姐影院 | 国产一区免费看 | 亚洲一区在线播放 | 村姑电影在线播放免费观看 | 午夜私人影院 | 成人免费看高清电影在线观看 | 在线观看欧美日韩国产 | 玩日本老头很兴奋xxxx | 福利视频免费观看 | 日韩电影免费在线观看中文字幕 | 二区三区在线观看 | 亚洲乱码国产乱码精品精98午夜 | 欧美成人精精品一区二区频 | 亚洲自拍偷拍区 | 欧美一二三四五区 | 日韩亚洲欧美一区二区三区 | 日韩美女一区 | 亚洲国产一区二区三区a毛片 | 久久天堂影院 | 天天爽天天操 | 久久国产精品一区二区三区四区 | 国产女人和拘做受视频免费 | 久久91视频| 日韩裸模 | 国产又粗又大又硬 | 亚洲欧美电影在线观看 | 免费的黄网站 | 精品一区二区三区电影 | 欲涩漫入口免费网站 | 亚洲一区二区日韩 | 精品成人网 | 黄网站在线观看视频 | 欧美日韩国产中文字幕 | 精品国产一区二区三区久久久 | 琪琪秋霞午夜被窝电影网 | 自拍视频二区 | 日韩av资源站 | 国产女主播视频 | 懂色一区二区 | 欧美激情xxxxx | 7777精品伊人久久久大香线蕉超级流畅 | 在线观看免费小视频 | 琪琪在线视频 | 欧美第三页 | 亚洲专区一区二区三区 | 国产精选在线 | 国产精品国产三级国产aⅴ浪潮 | 93久久精品日日躁夜夜躁欧美 | 男女互插视频 | 色网中文字幕 | 成人黄色激情网 | 国产激情免费在线观看 | 精品国产免费久久久久久尖叫 | 国产在线一区二区 | 91精彩在线视频 | 日韩欧美一区二区在线观看 | 136fldh导航福利微拍 | 亚洲自拍偷拍第一页 | 大地在线播放免费 | 国内外成人在线视频 | 日韩极品少妇 | 51精品国产人成在线观看 | 国产精品91一区 | 欧美厕所偷拍 | 国产痴汉系列 | 日本黄色免费在线 | 夜夜欢天天干 | 色偷偷www8888 | 99视频在线精品 | 欧美激情精品久久久 | 另类日韩| 电车里的日日夜夜 | 黄色小视频免费 | 777视频| 亚洲我射av | 色播亚洲 | 亚洲伦理精品 | 精精国产xxxx视频在线播放 | 欧洲性xxxx | 国产女主播一区二区 | 日韩午夜剧场 | 日韩在线小视频 | 色域天天综合网 | 日本久久一区 | 国产在线www | 超碰97在线免费 | 免费黄色影视 | 国产午夜激情视频 | 日韩一区二区三区在线免费观看 | 日韩精品亚洲专区 | 波多野结衣视频免费观看 | 五个女闺蜜把我玩到尿失禁 | 青青草视频中文字幕 | 91av在线国产| av一区二区三区在线 | 亚洲欧美精品 | 北条麻妃影音先锋 | 亚洲深夜影院 | 国产噜噜噜噜噜久久久久久久久 | 久久综合久久88 | 日韩欧美不卡 | 欧美一区二区影视 | 欧美日韩一区中文字幕 | 91一区二区在线 | 羞羞草在线视频 | 亚洲精品日韩欧美 | 亚洲国产精品久久人人爱 | 色婷婷在线播放 | 黑人多p混交群体交乱 | 麻豆视频在线观看免费网站 | 天天综合色天天综合 | 岛国精品一区二区 | 高潮久久久 | 91麻豆精品一区二区三区 | 九九色在线播放 | 久久久国产精品一区 | 影视先锋中文字幕 | aaa级精品久久久国产片 | 91久久精品美女 | 男人的天堂va | 欧美中文一区二区三区 | 黑人巨大精品欧美一区二区奶水 | 亚洲九九热 | 久久精品国产免费 | 丰满的少妇av | 中文字幕第12页 | 台湾男男gay做爽爽的视频 | 中文字幕在线视频免费观看 | 国产69精品久久久久久 | 日韩一级淫片 | av在线中文网 | 国产精品久久久久久久久借妻 | 国内自拍第一页 | 欧美性xxxxx极品少妇 | 超碰在线97av | 天堂va在线 | 草莓视频色多多 | 高潮网址 | 欧美在线视频a | 日韩 欧美 国产 综合 | 日韩第一页在线 | 福利视频在线播放 | 亚洲精品久久久久久一区二区 | 中文字幕av有码 | 欧美一区二粉嫩精品国产一线天 | 国产综合日韩精品 | 国产污污网站 | 女王玉足调教 | 欧美体内谢she精2性欧美 | 欧美午夜久久久 | 丁香综合 | 五月天婷婷视频 | 男人天堂亚洲天堂 | 精品国产伦一区二区三区免费 | 97香蕉| 夜夜爽夜夜叫夜夜高潮漏水 | 双性懵懂美人被强制调教 | 国产超碰人人爽人人做人人爱 | 精品少妇一区二区三区日产乱码 | av免费在线看网站 | 成人免费网站视频 | 正在播放亚洲精品 | 伊人久久免费视频 | 国产精品欧美一区喷水 | 一二三四在线视频 | 99热免费在线 | 日本不卡一区二区三区在线观看 | 色老头综合 | 久久99这里只有精品 | 色播在线观看 | 女人高潮毛片 | 国内国产精品天干天干 | 好看的中文字幕电影 | 久久国产精品99久久人人澡 | 色八戒av | 四虎永久在线精品免费一区二区 | 九九天堂 | 女性隐私黄www网站视频 | 永久555www成人免费 | 午夜精品亚洲一区二区三区嫩草 | 久久夜色精品国产 | 高跟鞋和丝袜猛烈xxxxxx | 国产成人精品电影 | 国产91在线观看 | 西西人体大胆www仙人掌 | 国产欧美一区二区精品性色 | 亚洲另类在线视频 | 精品一区二区三区国产 | 91精品国产亚洲 | 福利小视频 | 亚洲欧洲日本在线 | 日韩经典一区二区 | 视频一区 在线观看 | 一区二区三区四区在线免费观看 | 黄色在线视频观看网站 | 真性中出| 欧美性xxxx极品高清hd直播 | 亚洲aaa精品 | 狠狠爱在线视频 | 国产精品男同 | 黄色一级视屏 | 91黄色免费观看 | 亲胸揉胸膜下刺激视频大全 | 嗯啊h视频 | 国产亚洲情侣一区二区无 | 亚洲国产婷婷香蕉久久久久久 | 色女人网 | 影音先锋黑人 | 国产诱惑av | 日韩 欧美 视频 | 自拍偷拍综合 | 日本成人在线视频网站 | 精品国产精品网麻豆系列 | 欧美综合久久 | 亚洲国产欧美一区二区三区久久 | 91视频专区 | 亚洲在看 | 亚洲区一区二 | 影音先锋蜜桃 | 欧美在线视频网站 | 成人三级视频 | 操亚洲女人| 蜜臀久久99精品久久久久久宅男 | 欧美日韩亚洲国产综合 | 欧美一级视频 | 打白嫩屁屁网站视频短裙 | 日本护士在办公室里被躁 | 男人的天堂你懂的 | 日韩精品视频网 | 激情丁香久久 | 免费观看一级特黄欧美大片 | 上原亚衣av一区二区三区 | 红桃视频隐藏入口 | 婷婷色在线| 国产精品亚洲欧美 | 日韩精品亚洲一区 | 短篇山村男同肉耽h | 欧美色欧美亚洲高清在线视频 | 国产日韩欧美 | 丝袜福利视频 | 少妇激情偷人三级 | 伊人婷婷激情 | 超碰人人人人人人 | 日韩美女中文字幕 | free性丰满69性欧美hd | 91黄色免费观看 | 久久香视频| 国产精品精品视频一区二区三区 | 夜色福利 | 日韩三级av在线播放 | av成人动漫在线观看 | 波多野结衣三区 | 欧美日韩不卡合集视频 | 天美毛片 | 91麻豆网 | 色婷婷六月 | 免费成人在线观看视频 | 男生插女生的视频 | av免费观看一区二区 | 自拍欧美一区 | 91亚洲成人| a视频网站 | 精品国产伦一区二区三区观看方式 | 韩国欧美一区二区 | 女人的天堂网站 | 亚洲人成五月天 | 污污导航| 91精品国产综合久久香蕉922 | 亚洲激情综合网 | 精品国产乱码久久久久久闺蜜 | 亚洲激情视频在线播放 | 91影院在线免费观看 | 性高跟丝袜xxxxhd | 电家庭影院午夜 | 欧美激情精品久久久久久免费印度 | 国内最真实的xxxx人伦 | 中文字幕巨乳在线 | 日韩欧美一区二区三区久久婷婷 | 久久久久资源 | 五月天丁香综合久久国产 | av亚洲产国偷v产偷v自拍 | 99热这里只有精品8 欧美揉bbbbb揉bbbbb | 亚洲自拍电影 | 国产婷婷一区二区 | 久久性色av | 欧美一级淫片videoshd | 色噜噜国产精品视频一区二区 | 免费在线观看91 | 亚洲精品日韩在线观看 | 成人av久久 | 免费一区二区三区 | 三级网站视频 | 91福利精品视频 | 99久热| av毛片在线免费观看 | 高潮毛片又色又爽免费 | 成人av影视在线观看 | 亚洲免费专区 | 99国产精品一区二区 | 国产一区二区91 | 精品美女久久 | 欧美日韩调教 | 女生裸体视频在线观看 | 亚洲视频综合 | 亚洲污视频 | 精品国产乱码久久久久久老虎 | 在线成人免费网站 | 美女扒开腿让男生捅 | 亚洲视频色 | 精品动漫一区二区 | 被黑人啪到哭的番号922在线 | 黄漫在线免费观看 | 亚洲最大黄色 | 九九热九九 | 一卡二卡三卡四卡在线 | 国产精品一页 | 伊人网在线观看 | 韩国v欧美v亚洲v日本v | 国产精品久久久免费 | av免费成人 | 少妇av导航 | 免费日本视频在线观看 | 先锋影音av资源网 | 免费观看日本视频 | 亚洲欧美另类自拍 | 国产成人97精品免费看片 | 国产裸体永久免费视频网站 | 韩国电影大尺度在线观看 | 色在线视频网站 | 亚洲xxxx视频| 久久久www成人免费无遮挡大片 | 精品亚洲国产成av人片传媒 | 午夜探花在线 | 国产午夜精品久久久久久免费视 | 日本不卡在线视频 | 樱花草av | 电影k8一区二区三区久久 | 日本视频免费看 | 欧美麻豆一区 | 中文字幕亚洲综合久久 | 综合一区中文字幕 | 牛牛精品视频在线 | 亚洲一区免费观看 | 综合精品久久 | 最新亚洲一区 | 亚洲国产成人精品一区二区 | 日日碰日日操 | 爱情岛亚洲论坛av入 | 国产精品一区二区不卡 | 女生脱下裤子让男生操 | 国产啪视频 | 日本视频网站在线观看 | 亚洲精品电影在线观看 | 亚洲视频电影 | 美女色诱网站 | 国产黄色激情 | 国产激情毛片 | 免费能直接在线观看黄的视频 | av福利片 | 欧美精品一二区 | 能在线观看的av网址 | 亚洲国产精品一区二区第一页 | 欧美性xxxxx极品 | 成为性瘾网黄的yy对象后 | 国产成人一区二区 | 欧美白人最猛性xxxxx69交 | 色综合色狠狠 | 精品视频在线视频 | 国产成人精品一区二区三区视频 | 久久精品一二三 | 日韩欧美一区二区视频 | 村上里沙番号 | 91精品婷婷国产综合久久竹菊 | 久久精品男人的天堂 | 欧美成人免费一级人片100 | 小柔的裸露日记h | 老师的丰满大乳奶 | 开心久久婷婷综合中文字幕 | 精品久久国 | 日韩欧美一区二区久久婷婷 | 国产精品嫩草影院久久久 | 中文字幕一区av | 国产欧美一区二区三区在线老狼 | 亚洲精品99999 | 精品久久久久久国产 | 桃色一区二区三区 | 国产又猛又黄 | 影视先锋中文字幕 | 午夜黄视频 | 欧美一区二区三区四区在线观看 | 中文字幕在线播放第一页 | 美国女人毛片 | 搞黄视频在线观看 | 在线观看日韩欧美 | 国产精品视频久久 | 黄色国产精品 | 亚洲欧美一区二区三区孕妇 | 成年视频免费高清在线看 | 精品一区二区三区视频 | 日本精品不卡 | 欧美 日韩 国产 成人 在线观看 | 久草手机在线 | 色婷婷综合久久久久 | 国产午夜久久久久 | 欧美精品激情视频 | 日本中文一区 | 台湾佬av | 欧美日韩综合 | 成人福利网址 | 丁香激情视频 | 久久精品国产成人 | 日韩欧美亚| 国产精品高清在线观看 | 久久久久久久色 | 成人免费大片黄在线播放 | 亚洲国产精品久久久久秋霞蜜臀 | 日韩av免费在线播放 | 日本一区二区三区视频在线观看 | 欧美精品乱人伦久久久久久 | 视频福利一区 | 亚洲福利免费 | 夜夜操天天 | 日本不卡一区二区 | 国产a精品| 成人久久久精品乱码一区二区三区 | 99re这里只有精品6 | 欧美日韩一区免费 | 男女激情久久 | 99久久精品国产交换 | 欧美日韩在线一区 | 日本大片在线看黄a∨免费 久久精品国产999大香线蕉 | 国产亚洲一区二区三区不卡 | 日韩中文欧美 | 日韩精品一二三 | 国产精选久久 | 色男人的天堂 | 色片在线观看 | 美日韩在线视频 | 久久精品男人的天堂 | 激情六月婷婷 | 欧美成人一区二区三区在线观看 | 中字幕视频在线永久在线观看免费 | 在线免费观看日本视频 | 国产一区二区三区高清在线观看 | 极品大奶| 小视频在线免费观看 | 亚洲国产精华液网站w | 国产精品亚洲成人 | 女人被男人操的视频 | 日韩3级 | 色综合图片| 国产精品成人国产乱一区 | 免费黄色资源 | 在线色视频网站 | 波多野结衣办公室33分钟 | 婷婷激情电影 | 国产日韩在线一区二区三区 | 最近最好看的2018中文字幕电影在线观看 | 欧美三级不卡 | 雷电将军和丘丘人繁衍后代视频 | 久久亚洲精品一区二区 | 日日夜夜中文字幕 | 一区二区三区亚洲 | 久久免费视频观看 | 色呦呦网站入口 | 日韩高清三区 | 中文字幕男人天堂 | 久久久久www| 日韩欧美国产三级 | 欧美性猛交xxxxxxxx | 就去色av | 91麻豆网 | 九一精品一区 | 国产性猛交xxxx免费看久久 | 久久久国产精品一区 | 中文字幕日韩精品在线观看 | 成人av电影在线 | 亚洲精品在线免费 | 亚洲天天影视 | 视频一区 视频二区 视频三区 视频四区 国产 | 欧美性猛交xxxx免费看漫画 | 久久伊人操| 午夜啪啪网站 | 91视频专区 | 精品在线观看免费 | 欧美午夜精品久久久 | 波多野结衣一区二区三区免费视频 | 美女国内精品自产拍在线播放 | 日本毛片在线 | 国产亚洲毛片 | 亚洲精品成人在线 | 色九九 | 91超碰在线免费 | 日韩中文字 | 日韩美女三级 | 日韩在线观看精品 | 视频一区视频二区在线观看 | 91精品国产一区二区 | 久久一区欧美 | 99久久夜色精品国产亚洲96 | 伊人久久久久久久久久 | 一区二区不卡在线播放 | 日韩欧美一区二区视频 | 欧美日韩免费看 | 欧美揉bbbbb揉bbbbb | 国产欧美在线一区二区 | 任我爽在线视频精品一 | 国产乱国产乱300精品 | 日本激情一区 | 欧美日三级 | 国产精品一国产精品 | 日韩全黄| 国产欧美精品一区二区 | 国产91精品久久久久久久网曝门 | 97超碰人人澡人人爱学生 | 亚洲国产精久久久久久久 | 在线一级片 | 豆花av在线 | 爱情岛论坛亚洲入口 | 日本久久久久亚洲中字幕 | 久久久7777| 欧美日韩第一页 | 欧美高清在线精品一区 | 福利片免费在线观看 | 欧美成年人在线观看 | 性欧美激情精品 | 99国产在线视频 | 亚洲福利国产 | 精品亚洲一区二区三区在线观看 | 青青河边草高清免费版 视频 | 高跟鞋调教贱奴 | 黄页网站大全在线观看 | 国产欧美一区二区精品性色 | 成人激情一区 | 黄页免费看 | 尤物视频免费观看 | 天堂8中文在线 | 欧美有码在线 | 欧美另类天堂 | 国产91清纯白嫩初高中在线观看 | 免费观看xxx在线观看下载 | 亚洲福利视频免费观看 | av日韩电影网站 | 最好看的2019年中文在线观看 | 国产最爽的乱淫绿帽3p | 亚洲一二三在线 | av最新网址 | 91免费小视频 | 美女国产一区二区三区 | 欧美成人免费网 | 一区二区成人在线观看 | 女明星裸体看个够(无遮挡) | 俺来也俺也啪www色 激情视频国产 | 久久伊人中文字幕 | 免费看女生裸体视频 | 日日操夜夜撸 | 国产性猛交xxxⅹ交酡全过程 | 精品国产一区探花在线观看 | 性一交一乱一乱一视一频 | 福利视频午夜 | 国产精品99久久久久久久久久久久 | 久久国产色av | 日韩综合另类 | 国产又黄又嫩又滑又白 | 91在线一区二区三区 | 欧美日韩伦理一区二区 | a天堂一区 | 一级黄色片网站 | 香蕉久久一区二区不卡无毒影院 | 五月婷婷激情综合网 | 第一福利官方导航大全 | 国产一区二区三区免费 | 午夜精品一区二区三区三上悠亚 | 国产91av在线 | 午夜两性视频 | 黄视频网站在线观看 | 女的扒开腿让男的捅 | 全国男人的天堂网 | 欧美一区二区三区视频在线 | 亚洲精华国产 | 国产精彩视频免费观看 | 先锋影音制服丝袜 | 最好看的mv中文字幕国语电影 | 欧美视频一区二区三区在线观看 | 在线观看欧美日韩国产 | 99精品视频一区二区 | 亚洲最大av | 国产成人在线精品 | 51蜜桃传媒精品一区二区 | 91天天操 | 久久久久免费视频 | 日韩福利电影在线 | 波多野结衣中文字幕在线播放 | 午夜视频在线观看一区二区三区 | 黄色小网站在线观看 | 黑帮大佬和我的三百六十五天 | 国产精品xxxav免费视频 | 欧美日韩在线看 | 一二三四在线观看视频 | 亚洲一区自拍 | av色在线 | 日韩午夜激情av | 国产精品久久二区二区 | 欧美性猛交xxxx偷拍洗澡 | 黄色av免费观看 | 中文精品在线 | 男人插女人免费视频 | 五月开心婷婷网 | 婷婷综合五月天 | 裸体免费 | 97久久精品人人爽人人爽蜜臀 | 中文字幕日韩精品一区二区 | 日本黄色小视频 | 动漫美女揉胸 | 男人天堂亚洲 | 福利小视频导航 | 夜夜精品视频 | 校花被c在线观看 | 调教丝袜美女 | 免费网站在线观看人数在哪动漫 | 中文在线a∨在线 | 丁香花国语版普通话 | 精品国产一区二区三区免费 | 欧美日韩国产一级片 | 老少配性506070xxxx | 国内精品久久久久久久影视简单 | 日本一区二区精品视频 | 国产视频在线观看一区二区三区 | 日韩成人在线资源 | 久久久久99精品国产片 | 萌白酱福利视频 | 成人午夜激情在线 | 亚洲激情欧美 | 欧美黑人xxxⅹ高潮交 | 淫欲模特在线观看 | 欧美色videos| 国产专区自拍 | 超碰下载页面 | 极品粉嫩国产48尤物在线播放 | 精品一区二区三区欧美 | 久草免费在线色站 | 午夜两性 | 色一区二区| 国产裸体无遮挡 | 国产精品麻豆一区二区三区 | 激情sese | 自拍偷拍亚洲区 | 国产精品一二三在线 | 自拍一区在线观看 | 精品国产一区二区三区性色av | 调教扩张尿孔针刺重口 | 色图18p | 亚洲视频在线观看一区 | 岛国在线免费观看 | 999精品一区二区 | 日本一区二区在线视频 | 91在线观看视频 | 亚洲欧洲美洲av | 欧美日韩午夜影院 | 欧美日韩国产精品自在自线 | 第一福利网址 | 国产91色在线 | 亚洲 | 伊人青青草原 | 激情都市一区二区 | 亚洲精品有码在线 | 色国产精品一区在线观看 | 精品免费av | 亚洲成人av电影在线 | av怡红院| 亚洲精品高清视频在线观看 | 亚洲美女黄色片 | 欧美日韩夜夜 | 亚洲午夜在线视频 | 超碰在线免费公开 | 一区二区三区四区五区 | 日本福利一区二区 | 可以看的黄色网 | 天堂视频在线 | 成人精品免费网站 | 九色视频网 | 亚洲尤物在线 | 亚洲性xxxx | 亚洲欧美在线第一页 | 欧美成年网站 | 久久综合九色综合欧美狠狠 | 日日夜夜天天 | 欧美在线va | 性色网站 | 六十路息与子猛烈交尾 | 国产美女免费无遮挡 | 天天爱天天射 | 强制中出し~大桥未久10在线播放 | 欧美午夜激情在线 | 最新暗呦小u女在线播放 | 欧美一二三四五区 | 亚洲毛片在线观看 | 日韩精品在线一区 | 最近最好看的2018中文字幕电影在线观看 | 视频一区 视频二区 视频三区 视频四区 国产 | 337p亚洲精品色噜噜 | 亚洲中国色老太 | 欧美色成人 | 国产精品日产欧美久久久久 | 亚洲精品一区二区精华 | 久久人妖| 国产在线不卡 | 天天av网站 | 一区二区福利视频 | 日本韩国一区二区三区 | 自拍在线观看 | 亚洲午夜视频 | 久久中文字幕在线视频 | 色五婷婷| 国产精品毛片久久久 | 美女网站av | 宅男午夜电影 | 成人av电影在线播放 | 欧美在线综合视频 | av在线看片 | 浓精喷进老师黑色丝袜在线观看 | 少妇丝袜在线 | 色综合久久88色综合天天免费 | 青青草视频免费 | 绝母1第6集免费观看动漫 | av免费看网站 | 日韩不卡在线视频 | 18成人免费观看网站下载 | 国产四虎 | 精品国产亚洲一区二区三区 | 草草视频在线免费观看 | 向着小小的花蕾绽放 | 五月天国产 | 999国产精品永久免费视频app | 欧美日韩二区三区 | 青青草欧美 | 97视频 | 国产黄色在线播放 | 黄色小视频免费观看 | 美女一区二区三区在线观看 | 韩国成人理伦片免费播放 | 欧美一区二区三区四区在线观看 | 国产视频网址在线 | 美女日批免费视频 | 日韩 欧美综合 | 业余自由色xxxx性视频 | 国产九色sp调教91 | 老熟妇毛茸茸 | 色图色小说 | av观看网址 | 激情亚洲色图 | 国产福利精品一区二区 | 蜜桃成熟时李丽珍国语 | 国产一区二区三区不卡在线观看 | 日本a级大片 | 日韩国产专区 | k频道在线观看 | 亚洲成熟女性毛茸茸 | 亚洲高清不卡在线 | 在线播放一级片 | 999视频在线观看 | 免费成人在线网站 | 黄色av网站在线观看 | 色偷偷偷在线视频播放 | 欧美性极品少妇精品网站 | 在线免费观看成人 | 91九色成人 | 一本大道久久a久久精二百 色哟哟黄色 | 91精品国产综合久久福利 | 9191在线视频 | 国产夫妻自拍在线 | 影音先锋在线视频观看 | 欧美激情艳妇裸体舞 | 精品av一区二区 | 中文字幕高清在线免费播放 | 啪啪凸凸 | www.成人在线| 北岛玲一区二区三区 | 精品综合网 | 久久久久久久久一 | 久久99精品久久久久久园产越南 | 今天高清视频在线观看 | 被老公舔高潮 | 亚洲人成精品久久久久 | 男女涩涩 | eeuss一区二区三区 | 欧美 日韩 亚洲 一区 | 亚洲黄色影院 | 四虎4545www国产精品 | 久久不见久久见免费视频7 免费偷拍视频网站 | 成人永久aaa| 国产精品激情偷乱一区二区∴ | 18视频在线| 欧美第三页 | 精品一区精品二区 | 久久免费视频这里只有精品 | 中文字幕第9页 | 国产精品毛片久久久 | 美剧19禁啪啪无遮挡大尺度 | 中文字幕久热精品视频在线 | 自由成熟xxxx色视频 | 奇米精品一区二区三区四区 | 日本高清视频www | av大片网址 | 亚欧高清| 国产在线观看免费视频今夜 | 扒开双腿给我看个够 | 91国内精品自线在拍白富美 | 日本不卡一区二区三区在线观看 | 欧美成年人在线观看 | 激情图片av | 欧美xxxx免费虐 | 特级西西人体www | 超薄丝袜足j好爽在线 | 色福利网站 | 美女扒开尿口给男人看 | 极品少妇一区二区三区 | 51亚洲精品 | 视频在线观看免费高清完整版在线观看 | 色狠狠久久av五月综合 | 日韩av在线一区二区三区 | 国户精品久久久久久久久久久不卡 | 99国内精品 | 羞羞涩涩的视频 | 美女张开腿露出尿口 | 色人阁av | 日韩视频一区二区三区在线播放免费观看 | 亚洲久久久久久久久久久 | 久久久久久久久久久久久久久久久久久久 | 四虎亚洲成人 | 亚洲欧美日韩国产一区二区 | 欧美日韩国产美女 | 精品在线小视频 | 日韩黄视频 | 男人天堂亚洲天堂 | 男人半夜看的网站 | 亚洲图片三区 | 亚洲欧美成人一区二区在线电影 | 天天爽视频| 在线一区二区三区四区 | 国产又粗又猛又爽又黄91精品 | 国产这里只有精品 | 人人草人人| 都市激情校园春色欧美 | 亚洲一区二区三区激情 | 综合天天久久 | 91av在线免费观看视频 | 欧美日本韩国在线 | 国产盗摄视频在线观看 | 5g影院天天爽成人免费下载 | 成人黄页在线观看 | 乱lun合集男男高h | 综合久久一区二区三区 | av色影院 | 日韩丝袜美女 | 午夜精品福利一区二区蜜股av | 天天狠狠| 国产在线视频一区 | 国产一区二区三区 在线 | 福利500精品导航大全 | 黄网站免费观看视频 | 大奶子在线观看 | 自拍偷拍第2页 | 亚洲国产精品成人精品 | 五月天一区二区三区 | 亚洲一卡久久 | 一级丰满大乳hd高清 | 男人天堂网在线视频 | 国产人人干 | 久久国内精品视频 | 欧美日韩国产在线看 | 日本黄色不卡 | 在线日韩三级 | 偷拍美女内裤 | 欧美高清性xxxxhd | www.激情网.com | 久久久精品影视 | 成人免费在线视频 | 亚洲精品久久视频 | 日本人极品人妖高潮 | 欧美a在线看 | 亚洲综合色网站 | 欧美精品一区二区三区视频 | 性情中人中文网 | 日韩中文字幕一区 | 久久国产影院 | 黑人巨茎大战欧美白妇 | 亚洲综合另类 | 日韩高清黄色 | 99国产亚洲精品 | 午夜免费av电影 | 织田真子作品 | 国产精品久久久久久久小唯西川 | 99色在线视频 | 亚洲色女 | 伊人激情综合网 | 欧美大片一区二区 | 久久天堂av综合合色蜜桃网 | 超碰在线观看免费 | 免费av自拍 | 日韩精品午夜视频 | 久久久精品有限公司 | 波多野结衣黑丝袜 | 无码免费一区二区三区免费播放 | 欧美日本亚洲韩国国产 | 亚洲一区二区视频 | 少妇色 | 国产日韩精品一区二区 | 免费国产一区二区 | 天天网站 | 亚洲做受高潮 | 蜜臀av在线播放一区二区三区 | 91欧美激情一区二区三区成人 | 美女丝袜av | 亚洲一级免费视频 | 日本激情中文字幕 | 黄页免费网站 | 亚洲欧洲三级 | 欧美一区永久视频免费观看 | 黄色av一级| 丁香激情五月少妇 | 日韩精品毛片 | 国产精品久久久久久久久久三级 | 成人欧美一区二区三区在线 | 欧美色视频一区 | 少妇户外露出[11p] | 久久久久九九九九 | 亚洲精选在线 | 亚洲人和日本人hd | 自拍视频亚洲 | 久草资源网 | 桃花岛亚洲 | 麻豆av一区二区三区久久 | 亚洲一区二区三区在线 | 黑人激情视频 | 黄色av网站在线免费观看 | 欧美日韩电影一区 | 亚洲成人va| 久久久久久久亚洲精品 | 国产精品一区在线播放 | 色呦呦在线视频 | 亚洲丰满 | 极品美女高潮出白浆 | 免费小视频 | 欧美成人一区二区三区电影 | 亚洲精品伦理在线 | 男人天堂官网 | 校园春色另类小说 | 亚洲天堂手机 | 欧美精品一区在线观看 | 六月色婷婷 | 中文字幕中出 | 亚洲精品水蜜桃 | av免费观看网址 | 欧美gv在线 | 清纯唯美亚洲综合 | 丁香六月综合激情 | 国产欧美一区二区视频 | 超碰地址发布页 | 男人免费视频 | 欧美 日韩 三级 | 午夜网站免费看 | 精品国产电影一区二区 | 国产精品一二三视频 | 国产又白又嫩又爽又黄 | 久久久久久国产精品三级玉女聊斋 | 啊v在线视频 | 资源站av | 久久久国产精品一区 | 少妇裸体淫交视频免费看高清 | 国产欧美精品va在线观看 | 中文字幕精品一区二区三区在线 | 国产一区二区久久 | 窝窝午夜影院 | 国模吧一区二区 | 欧美h视频在线观看 | 亚洲天堂网站 | 午夜激情视频网 | 99在线视频播放 | 一区二区三区精品视频在线观看 | 美女免费视频网站 | 美女bbw嘘嘘嘘看个够 | 欧美日韩成人精品 | 欧美成人综合视频 | 超碰免费97 | 亚洲专区一区二区三区 | 日中文字幕 | 麻豆传媒一区二区三区 | 九色丨porny丨自拍视频 | 亚洲性精品 | 日本奶水乳妇 | 8090福利成人午夜精品 | 极品色av | 日韩在线视频网站 | 久久亚洲美女 | 男女污污网站 | av女优天堂网 | 亚洲伊人影院 | 免费看国产视频 | 一区二区三区四区五区视频 | av在线免费一区 | 女人被男人猛操 | www.尤物视频.com | 美女免费网站黄 | 欧美资源在线观看 | 天天色综| xxx2高清在线观看免费视频 | h视频网站在线观看 | 久久精品欧美日韩精品 | 色一情一区二区三区四区 | 对白刺激国产子与伦 | 国产一区二区h | 字幕网av | 91精品国产91久久久久久久久 | 亚洲网友自拍 | 一边吃奶一边摸做爽视频 | 亚洲色图视频网站 | 欧美一区二区三区在线 | 怡红院老司机 | 成人在线观看视频网站 | 岛国精品在线观看 | 男女激情视频网站 | 国产麻豆精品久久一二三 | 超碰在线网站 | 青青操在线视频 | 国产一区二区三区在线观看免费视频 | 青青青视频自偷自拍 | 免费观看成人网 | 一区二区三区在线视频播放 | 海量毛片| 精品国产一区二区三区免费 | 亚洲精品电影在线 | 精品视频一区三区九区 | 黄色一级视屏 | www.久久爱.com | 亚洲精品一二区 | 日韩免费高清在线观看 | 在线一二三区 | 成年人视频在线免费看 | 久久免视频 | 欧美日韩 中文字幕 | 国产精品美女久久久久久久网站 | 婷婷色香 | 中出少妇| 福利精品视频 | 在线看黄网址 | av日韩在线播放 | 貂蝉被到爽流白浆在线观看 | 美女脱了裤子让男人桶 | 中文字幕亚洲激情 | 黑丝一区二区三区 | 久久亚洲一区二区三区四区五区高 | 亚洲精品v欧美精品v日韩精品 | 黄色片怎么看 | 中文在线免费视频 | 98精品在线视频 | 91精品国产欧美一区二区 | 在线视频xxx | 户外勾搭农村妇女野战 | 欧美中文字幕在线观看 | 黄wwwww| 日韩一区二区三区在线免费观看 | 色多多网站 | 加勒比日本在线 | swag国产精品一区二区 | 久久精品亚洲精品 | 欧美视频1区 | 欧美一级网站 | a级激情片 | 91网站在线播放 | 久久免费看少妇高潮 | 免费色片在线观看 | 男生脱女生衣服 | 伊人网在线播放 | 日本爽爽爽 | 欧洲成人在线视频 | 视频一区二区三区在线观看 | 日韩在线免费视频 | 成人免费在线播放视频 | 欧美美女一区二区三区 | av网免费| 在线免费观看成人网 | 亚洲精品乱码久久久久久蜜桃麻豆 | 久久婷婷麻豆 | 日韩av资源站 | 导航福利在线 | 伊人久久久久久久久久久久久 | 麻豆成人入口 | a毛片在线 | 欧美性大战久久 | 国产欧美精品日韩区二区麻豆天美 | 日韩在线视频精品 | 亚洲另类xxxx| 成人高清在线视频 | 国产免费拔擦拔擦8x在线播放 | 欧美四级电影在线观看 | 丁香激情六月 | 污视频在线播放 | 色哟哟亚洲 | 欧美性在线播放 | 欧美日韩中文 | 日本青青草视频 | 久久久亚洲网站 | 夜撸色 | 欧美成人免费观看 | 都市激情 自拍偷拍 | 成人黄色91| 久久福利网站 | 成年人黄色在线观看 | 亚洲男人的天堂一区二区 | 黄色aa网站| 国产美女主播一区 | 美女黄污网站 | 欧洲午夜精品 | 国产乱码精品一区二三赶尸艳谈 | 久久久国产91 | 久艹在线 | 九九天堂 | 亚洲在线一区二区三区 | 在线观看av中文字幕 | 欧美做受69 | 色妞www精品视频 | 青青草国产在线 | 黄色国产精品 | 在线视频亚洲 | 精品免费av一区二区三区 | 人体裸体bbbbb欣赏 | 成人精品一区二区三区四区 | 二区在线视频 | 国产精品久久久久久久9999 | 国模一区二区 | 91插插插影库永久免费 | 午夜在线国语中文字幕视频 | 丁香社区五月 | 久久久综合av | av在线最新网址 | 91精品国产福利在线观看 | 毛笔失禁玩弄play高潮双男主 | av一区在线观看 | 日本在线视频播放 | 美女视频在线观看免费 | 国产a视频免费 | 91香蕉在线看 | 欧美a一级片 | 亚洲专区一区二区三区 | 18视频在线观看网站 | 99香蕉国产精品偷在线观看 | 日本韩国欧美一区二区三区 | 97超级碰碰碰久久久 | 草莓视频污视频 | 免费av在线播放 | 超碰人人射 | 国产精品成人久久久久 | 日韩电影在线一区二区 | 最新中文字幕视频 | 福利社区导航 | 国产chinese男男网站大全 | 日本黄色片在线观看 | 福利一区二区三区视频在线观看 | 在线午夜影院 | 老熟妇午夜毛片一区二区三区 | 欧美成人视屏 | 久久99精品国产麻豆婷婷洗澡 | 正在播放 国产精品 | 国产性猛交xxxⅹ交酡全过程 | 国产天堂亚洲国产碰碰 | av在线天天 | 69av网站| 美女扒开腿让男生桶 | 男人操女人动漫 | 强制中出し~大桥未久10在线播放 | av成人国产 | 福利短视频 | 色视频免费观看 | 亚洲国产一区二区三区四区 | 亚洲狠狠婷婷 | 色噜噜在线观看 | 超碰在线免费公开 | 国产黄视频在线观看 | 91小宝寻花一区二区三区 | 琪琪午夜伦伦电影福利片 | 精品一区亚洲 | 亚洲奴役支配性狂虐xxxxx | 亚洲一二三区精品 | 欧美色香蕉 | 伊人激情在线 | 超碰下载页面 | 亚洲欧美成人网 | 欧美日韩精品系列 | 乱人伦精品 | 蜜臀av性久久久久av蜜臀妖精 | 日韩欧美国产综合 | 久久福利影院 | 亚洲是色 | 成人av视屏 | 欧美黄色网 | 影音先锋男 | 成人av男人的天堂 | 亚洲国产精品t66y | 国产一级黄色av | 日韩在线不卡 | 国产精品久久久一区 | 欧美 日韩 另类 字幕中文 | 91成人免费在线 | 精品国产第一国产综合精品 | 一本av在线 | 激情中出 | 日本成人社区 | 青青草手机视频 | 色欧美88888久久久久久影院 | 在线国产网址 | 他揉捏她两乳不停呻吟动态图 | 一级黄毛片| 香蕉亚洲视频 | 中文字幕日韩一区二区 | 欧美激情在线观看视频 | 91福利视频在线 | 五月六月婷婷 | 精品视频在线一区二区 | 亚洲日本成人在线观看 | 黄色小网站入口 | 精品欧美视频 | av免费观看在线 | 黄页免费在线 | 久久久在线 | 精品丝袜久久 | 久久成人久久爱 | 日韩 二区 | 欧美精品一区二区三区在线播放 | 中文字幕在线观看免费 | 日韩av在线一区二区三区 | 一区二区三区四区亚洲 | 亚洲区第一页 | 亚洲国产清纯 | 国产福利资源 | 最新成人av在线 | 欧美色图婷婷 | 久久精品国产亚洲aⅴ | 欧洲美女屁股眼交3 | 国产又白又嫩又爽又黄 | а√资源新版在线天堂 | 天堂av网站| 91久久奴性调教 | 日本中文字幕网站 | 色大师av | 大学生第一次破女处视频国产 | 黄色骚视频 | 蜜桃视频成人 | 成人激情小说网站 | 久久综合影视 | 女同vk| 久久麻豆视频 | 欧美大尺度电影在线观看 | 污污视频在线观看网站 | 草莓视频在线观看入口w | 日韩欧美国产精品一区 | av成人亚洲| 五月天 丁香 | 亚洲免费在线播放 | 日韩狠狠操 | 激情都市一区二区 | 黄色网战免费观看 | 亚洲成人一区二区在线观看 | 奇米在线777 | 少妇性bbb搡bbb爽爽爽欧美 | 精选一区二区三区四区五区 | 亚洲三级免费观看 | 亚洲一区二区欧美日韩 | 国产黄色大全 | 波多野结衣精品久久 | 欧美一区二区在线免费观看 | 伊人春色在线观看 | 青青免费视频 | 国产精品第五页 | 久久久久久久久久久电影 | 午夜精品久久久久久99热 | 国产四区 | 国产视频一区二区在线 | 韩国福利视频一区 | 日韩一区二区三区观看 | 久久久免费在线观看 | 亚洲一区二区三区 在线 | 在线播放av电影 | 欧美大尺度视频 | 亚洲欧美日韩中文在线 | 中文字幕在线不卡视频 | 一线天 粉嫩 在线播放 | 欧美性狂 | 亚洲制服av | 禁果av一区二区三区 | 日韩一区二区电影在线观看 | 久久久久久这里只有精品 | 欧美在线免费视频 | 激情在线小视频 | 亚洲成人免费视频 | 国产传媒在线视频 | 4kfree性满足欧美hd18 | 日本一级视频 | 亚洲小视频在线观看 | 日韩欧美日韩 | 色妞在线 | 色网站视频 | 91久久久久久久久久久久久 | 欧美精品在线免费 | 国产成人亚洲欧美 | 欧美国产中文字幕 | av每日更新 | 九九在线免费视频 | 日韩精品午夜视频 | 卡通动漫精品一区二区三区 | 千仞雪把乳夹乖乖戴上被迫调教 | 九九热电影 | 蜜桃成熟时李丽珍国语 | 女人呻吟视频 | 大尺度床戏无遮挡 | 日本在线免费视频 | 亚洲成成品网站 | h片在线观看网站 | 日韩精品视频观看 | 国产午夜激情视频 | 亚洲www啪成人一区二区 | 一区二区三区欧美视频 | 天堂中文在线8 | 欧美日韩国内 | 午夜精品国产精品大乳美女 | 九九自拍 | 亚洲精品视频在线看 | 欧美一级片一区 | 中文在线最新版天堂8 | 中文毛片| 91精品国产综合久久香蕉麻豆 | 国产精品中文字幕在线观看 | 91久久国产综合久久 | 一区二区三区国产精品 | 77777亚洲午夜久久多人 | 丝袜爽文| 亚洲网友自拍偷拍 | 免费亚洲婷婷 | 蜜桃成人精品 | 自拍亚洲国产 | 操她视频在线观看 | 麻豆传媒映画官网 | 欧美少妇诱惑 | 91污在线观看 | 三级黄色在线观看 | 国产精品国产精品国产专区不卡 | 成人精品福利视频 | 亚洲综合免费观看高清在线观看 | 91成人免费在线观看 | 男女爱爱动态图 | 香蕉av一区二区 | 视频一区视频二区在线观看 | 国产成人午夜高潮毛片 | 男人都懂的网址 | 国产一区二区三区在线视频 | 成人av在线看 | 桃谷绘里香在线播放 | 先锋av资源 | 久久久久se | 青青草视频免费 | 日韩欧美一区视频 | 久久天堂网 | 国产欧美日韩免费看aⅴ视频 | 97色伦图片 | 午夜黄色av | 一区二区三区久久 | 国产综合色视频 | 黄网站免费在线播放 | 久久久一区二区三区 | 久久精品亚洲 | av中文字幕电影在线观看 | 麻豆视频在线观看 | 差差差30分钟 | 亚洲第一伊人 | 国产视频青青 | 大尺度一区二区 | 麻豆蜜桃在线观看 | 天天操天天插天天干 | 男人天堂网站 | aaa级片 | 琪琪色影音先锋 | 亚洲综合a | 日韩福利一区二区 | 女人张开腿让男人插 | av在线每日更新 | 女生张开腿给男生桶 | 猛男特大粗黑gay男同志 | 国产欧美日韩精品a在线观看 | 91在线观看免费播放 | 禁果av一区二区三区 | 日韩高清成人 | 女性喷水视频 | 久久99蜜桃精品 | 国产在线网站 | 欧美激情 亚洲 | 成人午夜又粗又硬又大 | 午夜一级在线 | 中文字幕在线资源 | 三级电影在线看 | 免费观看av网站 | 欧美网 | 亚洲欧美激情视频 | 日本色悠悠 | 国产一区av在线 | 国产日韩欧美一区二区三区乱码 | 光溜溜视频素材大全美女 | 亚洲男人天堂电影 | 国产免费看 | 网站黄在线观看 | 欧美辣妇与黑人30p 影音先锋午夜 | 打白嫩屁屁网站视频 | 26uuu欧美日本| a毛片视频| 午夜久久在线 | 91黄在线观看 | 久久这里只有精品99 | 日本一级片 | av在线免费不卡 | 日韩视频三区 | 午夜国产在线 | 成熟女人毛片 | 亚洲黄色小说网站 | 91久久人澡人人添人人爽欧美 | 91看片淫黄大片一级在线观看 | 久久精品国产99精品国产亚洲性色 | 欧美性猛交xxxx乱大交蜜桃 | 欧美做爰全过程免费观看 | 亚洲国产成人va在线观看天堂 | 亚洲免费av网站 | 亚洲午夜视频在线观看 | 体内精视频xxxxx | 欣赏裸体国模梦怡私拍 | 亚洲一区 在线播放 | 国产福利不卡 | av基地网| 国产精品一区二区三区精品 | 极品国产美女玉足脚交 | 91免费在线观看网站 | 黄色尤物网站 | av网站观看 | 精品网站| 天堂va蜜桃一区二区三区漫画版 | 精品欧美一区二区三区精品久久 | 超碰地址发布页 | 日韩国产一 | 日本三级香港三级人妇99 | 欧美一区二区三区在线 | 色老大网站 | 欧美亚一区二区 | 国产盗摄在线观看 | 欧美日韩第一页 | 亚洲成人一二三 | 免费观看黄色网页 | 日本黄网在线观看 | 国产91精品一区二区绿帽 | 九色自拍视频 | 性表演xxx直播在线 永久域名18勿进 | 吃瓜网今日吃瓜 热门大瓜 伊人久久色 | 亚洲性小说| 国产女人水真多18毛片18精品视频 | 村上里沙av| 亚洲狠狠爱 | 草莓视频18免费观看 | 92精品视频 | 日韩天堂 | 久久中文字幕视频 | 日韩av在线免费播放 | 亚洲欧美在线看 | 手机视频在线免费观看 | 一区二区三区成人精品 | 国产精品伦理在线 | 日韩成人激情在线 | www.奇米四色.com | 影音先锋国产资源 | 91香蕉在线看 | 秋霞电影一区二区 | 白丝美女被草 | 超碰免费在线观看 | 一本一生久久a久久精品综合蜜 | 久久精品一区二区三区四区 | 欧美一区二区在线免费观看 | 911香蕉视频| 深夜激情影院 | 大片免费播放在线观看视频 | 爱豆国产剧免费观看大全剧苏畅 | 香蕉久久夜色 | 深夜激情视频 | 久久久www成人免费无遮挡大片 | 台湾成人娱乐网 | 黄色av免费在线看 | 男人猛躁女人网站 | 俺去也伦理资源站 | 国产精品久久久久久妇女 | 九色福利视频 | 欧美精品videos另类日本 | 国产又猛又黄 | 7777精品伊人久久久大香线蕉 | 国产日韩在线一区二区三区 | 日韩成人精品 | av传媒在线观看 | 天天爽夜夜操 | 久久香蕉一区 | 国产日韩av一区 | 美女啪啪一区 | 伊人网精品 | 毛片基地黄久久久久久天堂 | 91亚洲国产成人精品一区二三 | 国产原创一区二区三区 | 手机视频在线免费观看 | 能在线观看的av | 亚洲视频区 | 国产精品一二三产区 | 中文字幕成人av | 国产欧美一区二区精品性色 | 麻豆电影网站 | 亚洲人成欧美中文字幕 | 日日干日日射 | 欧美日韩国产一中文字不卡 | 素人一区| 老头巨大又粗又长xxxxx | 好吊色av | 日韩av一级| av综合站 | 国偷自产视频一区二区久 | 日韩成人av在线 | 亚洲视频一区二区 | 国产午夜精品一区 | 国产精品一区二区在线播放 | 中文字幕欧美在线 | 国产精品国产亚洲精品看不卡15 | 亚洲第一导航 | 精品一区二区三区欧美 | 黑鬼巨鞭白妞冒白浆 | 亚洲亚裔videos黑人hd | 精品伊人 | 欧美福利一区二区三区 | 色婷婷香蕉在线一区二区 | 青娱乐网站 | 久草视频网址 | 红杏导航 | 自拍偷拍亚洲精品 | 小蝌蚪视频色版 | 日本国产欧美 | 西西大胆午夜视频 | av网址在线播放 | 另类天堂网 | 日本午夜黄色片 | 538国产精品视频一区二区 | 波多野结衣一区二区 | 九九视频网 | av网址在线看 | 国产精品欧美一区二区 | 久久福利网 | 日韩视频免费看 | 北条麻妃影音先锋 | 色综合中文 | 夜色激情 | 精品视频免费看 | 中文字幕一区二区三区四区不卡 | 国内av免费看| 国产乱码精品一品二品 | 国产在线女主播 | 色婷婷亚洲一区二区三区 | 国产精品99久久久久久宅男 | 欧美国产一区二区三区 | 91中文在线| 亚洲成人激情av | 日韩不卡一区二区 | 国产成人综合在线 | 黑人精品欧美一区二区蜜桃 | 91深夜福利视频 | 午夜亚洲福利在线老司机 | 欧美久久免费观看 | 成年人影片在线观看 | 自拍偷拍小视频 | 美女一二三区 | 精品国产91久久久 | 国外精品视频 | av在线看片 | 国产精品区一区二区三 | 迈开腿让我尝尝你的小草莓 | 欧美久久香蕉 | 播放毛片 | 国产精品久久久久99 | 老妇做爰xxxxhd老少配 | 久久99精品国产.久久久久 | a视频免费观看 | 视频一区免费在线观看 | 久精品视频 | 国产精品热 | 亚洲女人天堂 | 亚洲色图在线看 | 日本在线一二三 | 男女日批视频 | 麻豆传媒mv | 99精品视频免费 | 桃色视频网站 | 人人爽久久涩噜噜噜网站 | 日韩av中文字幕在线播放 | 成人自拍视频在线 | 午夜av网址| 久久天堂av | 欧美99p| 欧美国产中文字幕 | 毛茸茸熟妇丰满张开腿呻吟性视频 | 日本成人综合 | 欧美极品美女视频网站在线观看免费 | 成人免费毛片高清视频 | 日韩经典在线 | 男女啪啪av | 夜夜操天天 | 奇米888狠狠爱米奇777 | 91在线无精精品白丝 | 黄色欧美大片 | 一本一道久久a久久精品综合 | 日本免费黄色网址 | 91黄动漫| 国产97色在线 | 美女又爽又黄视频 | 国产在线不卡 | 免费国产黄色在线观看 | 日日狠狠久久偷偷四色综合免费 | 秘密基地电影免费版观看国语 | 中文字幕一区二区三 | 国产在线高清 | 又黄又爽的网站 | 日韩三区在线 | 朴麦妮原版视频高清资源 | 色婷婷av一区二区三区软件 | 娇妻被肉到高潮流白浆 | 成人综合电影 | 欧美女优在线观看 | 黄色在线免费网站 | 精品国产黄a∨片高清在线 成年人免费视频网 | 国偷自拍 | 欧美xxxx少妇 | 色老头在线视频 | 欧美小视频在线观看 | 91在线观| 久久色在线播放 | 特级西西人体www | 91视频免费在线 | 村上里沙av在线 | 美女视频黄是免费的 | 国产toupai | 美女又黄又www | 影音先锋中文字幕电影 | 色婷五月 | 亚洲激情啪啪 | 激情视频一区二区三区 | 日本在线播放不卡 | 欧美视频精品一区 | 让笨蛋变聪明的方法免费观看全集 | 999精品| 日韩精品dvd | 国产精品久久久久一区二区三区 | 99精品视频在线免费观看 | 视频亚洲一区二区 | 日韩男女性生活视频 | 美女扒开尿口让男人爽 | 亚欧乱色| sm捆绑调教网站 | 日韩中文在线视频 | 国产免费黄色小说 | 日韩欧美一级二级三级 | 欧美一级二级视频 | 午夜精品视频 | 亚洲精品乱码久久久久 | 成人a视频| 欧美黑人3p | 91精品在线国产 | 亚洲砖区区免费 | 日日草天天草 | 亚洲第一自拍 | 国产精品一区在线观看你懂的 | 国产精品一区二区久久久 | 果冻av在线 | 男女视频免费 | 色电影网址 | 91黄色国产视频 | 中文字幕乱码免费 | 极品大奶| av在线久 | 久久久久久久综合色一本 | 美女扒开腿让人桶爽原神 | 日韩精品一区二区三区四区 | a亚洲天堂| 国产护士在线 | 国模大尺度视频 | 伊人久久国产 | 美女扒开屁股让男人桶 | 国产成人综合一区二区三区 | 欧美三级电影在线观看 | 欧美a一区| 色香欲综合 | 国产午夜激情 | 欧美精品一区二区三 | 黄色片子免费 | 日本免费在线观看 | 国产亚洲午夜高清国产拍精品 | 欧美在线视频网站 | 日韩中文字幕区一区有砖一区 | av天天av | 亚洲美女色| 校花被c在线观看 | 男女爱爱福利视频 | 日韩美女在线视频 | 欧美日韩国内 | 午夜在线网站 | 亚洲精品国产a | 色资源在线 | 91免费视频免费版 | 国产黄色电影 | 村上里沙番号 | 黄色大全免费观看 | 欧美 在线播放 | 日韩专区 在线 | 法国空姐在线观看视频 | 99re在线视频这里只有精品 | 妹子干综合 | 日本h片在线 | 欧美日韩一区不卡 | 色黄视频网站 | 波多野结衣久久精品 | 亚洲激情影视 | 久在线 | 极品美女人体无圣光图 | 久久国产综合 | 黄色小电影网址 | 91麻豆国产精品 | 国产激情一区二区三区 | 成人精品一区二区三区四区 | 亚洲乱码国产乱码精品精的特点 | 91精品久久久久久久久 | 日韩不卡在线观看 | 久久精品99久久久久久久久 | 亚洲一区二区三区四区视频 | 国产91精品视频在线观看 | 欧美一级在线 | 国产黄色在线看 | 国内av在线播放 | 日本少妇ⅹxxxxx视频 | 国产精品字幕 | 国产精品―色哟哟 | 成人av午夜影院 | 女人与公拘交酡全过女免费 | 日韩久久久久 | 在线观看黄网 | 国产精品porn | 3p视频在线播放 | 丝袜老师让我了一夜网站 | 操亚洲女人| aaa免费毛片| 看av在线 | 午夜精品久久久久久久99黑人 | 日韩av在线一区 | 影音先锋中文字幕一区 | 中国老太婆av | 成人资源在线播放 | 亚洲精品视频中文字幕 | 美乳中文字幕 | 欧美精品免费在线 | 久久免费黄色 | 一区二区不卡 | 很黄很黄的视频网站 | 男人久久 | 成人3d动漫一区二区三区91 | 黄色91| 日韩r级在线观看 | 亚洲自拍偷拍网站 | 五月亚洲婷婷 | 不卡视频一二三 | 麻豆精品在线 | 欧美激情亚洲 | 97在线免费 | av日韩av | 亚洲国产精品系列 | 久久精品水蜜桃av综合天堂 | 毛片一区二区三区 | 日本久久精品 | 国产视频自拍一区 | 午夜国产福利 | 德国性xxxx | av资源在线看 | 带娇妻被粗大单男3p大叫视频 | 视频在线观看免费高清完整版在线观看 | 日本福利一区二区 | 97人人添人澡人人爽超碰 | 国产思思99re99在线观看 | 精品在线你懂的 | 天堂av.com | av资源在线网 | 日日爽天天 | 欧美精品三区 | 先锋影音每日资源站 | 国偷自拍第113页 | 香蕉视频在线播放 | 欧美性xxxxx极品少妇 | 日韩精品视频网 | 国产日本亚洲 | 婷婷另类小说 | 国产大秀视频 | a在线天堂| 色拍自拍 | 乱人伦精品 | 亚洲人线精品午夜 | 性猛交xxxx乱大交孕妇印度 | 国产一区精品视频 | 国产又黄又粗又猛又爽的视频 | 日韩一区二区三区在线视频 | 岛国毛片在线播放 | 91精品婷婷国产综合久久蝌蚪 | 国产91毛片 | 久久99精品久久久久久青青91 | 国产精品揄拍一区二区 | 国产精品91久久久久久 | 在线观看av资源 | 色婷婷一区 | 欧美精品在线视频观看 | www免费视频| 欧美日韩1 | 日本三级韩国三级欧美三级 | 亚洲欧洲日本在线 | 青青久在线视频免费观看 | 最新中文字幕 | 曰本理伦片午夜理伦片 | 两口子交换真实刺激高潮 | 国产在线激情视频 | 黄色在线观看免费网站 | 又色又爽又黄的网站 | 一区二区三区精品久久久 | 国产毛片aaa| 亚洲欧美综合 | 欧美日韩一区二区三区视频 | 国产三级精品视频 | 欧美一性一乱一交一视频 | 黄色免费网址在线观看 | 欧美成人精品二区三区99精品 | 亚洲一区二区自拍 | 人人爽人人射 | 激情在线网站 | av资源部 | 成年人看的黄色 | 东凛在线观看 | 日韩国产中文字幕 | 欧美精品乱码久久久久久 | av番号在线观看 | 亚洲最大福利视频 | 欧美精品1区2区 | 福利片一区 | 福利片在线看 | 朴银狐电影中文在线看 | 丁香花电影在线观看免费高清 | 国产精品久久久久婷婷 | 激情你懂得 | 都市激情欧洲 | 国产精品v| 国产一区二区三区观看 | 日本成人黄色 | 欧美 丝袜 自拍 制服 另类 | 懂色av一区二区三区蜜臀 | 日本999视频 | 久久精品一区二区三区四区 | 黄色av地址 | 波多野结衣办公室33分钟 | 亚洲色图小说 | 欧美性大战久久久 | 日本午夜精华 | 久久av中文字幕 | 91久久夜色精品国产九色 | 美女av网址| 国产精品一二三四区 | 日韩欧美一二三 | 亚洲国产精品麻豆 | 日本一区二区三区精品视频 | 欧美不卡高清 | 免费亚洲一区二区 | 日韩欧美一二区 | 国产在线欧美日韩 | 国产精品秘入口 | 欧美国产精品一区二区三区 | 日韩少妇中文字幕 | 欧美三级中文字幕 | 日韩成人免费在线 | 国产网站在线 | 久在线观看视频 | 醉酒的老板gl漫画免费阅读全集 | 国产一区二区三区在线观看网站 | 成人黄色av网站 | 亚洲少妇在线 | 亚洲黄色网址 | 成人免费看高清电影在线观看 | 免费观看的av | 精品成人国产 | 狠狠五月 | 欧美乱妇高清无乱码 | 日韩专区中文字幕 | 亚洲一区国产精品 | 亚洲激情av | 姐姐你真棒插曲快来救救我电影 | 国产91免费观看 | 日韩高清中文字幕 | 男人的天堂你懂的 | 国产三级午夜理伦三级 | 看片片 | 日本成人在线影院 | 男生操女生免费网站 | 禁漫天堂在线 | 老司机午夜免费精品视频 | 亚洲自拍网站 | 日本公妇乱淫免费视频一区三区 | 日批视频在线播放 | 国产欧美va欧美va香蕉在 | 欧美日韩国产一区在线 | 久久久久久爱 | www.在线免费观看 | 欧美在线黄 | 女人喷白浆视频 | 清纯唯美第一页 | 9l视频白拍9色9l视频开放 | av在线地址 | 国产69精品久久久久999小说 | 麻豆91免费看 | 天天干天天做 | 欧美激情 国产精品 | av电影在线网站 | 欧美另类z0zxhd电影 | 色婷婷在线播放 | 男女视频网站免费观看 | 情五月婷婷 | 午夜免费福利在线观看 | 草免费视频| 日韩在线精品一区 | 国产美女精品在线 | 日韩av电影免费观看高清 | 69福利视频导航 | 狠狠躁躁夜夜躁波多野结依 | 91精品一区二区三区久久久久久 | 99精品在线观看视频 | 久久国产麻豆精品 | 亚洲国产日韩美 | 亚洲精品成a人在线观看 | 91亚洲一区 | 国产成人一区在线 | 国产精品久久久久aaaa | 欧美性猛交xxxx免费看久久久 | 999热 | 99视频+国产日韩欧美 | 不许穿内裤随时挨c调教h苏绵 | 亚洲综合三区 | 极品91尤物被啪到呻吟喷水 | 欧美一级大胆视频 | www免费视频 | 久久精品资源 | 污污视频在线观看网站 | 国产精品播放 | 亚洲伦理网站 | 欧美日韩中文国产一区发布 | 色男人天堂 | 热re99久久精品国产99热 | 91精品在线免费观看 | 男人天堂av在线播放 | 5g影院天天爽成人免费下载 | 欧美福利电影网 | 国产三级欧美三级日产三级99 | 午夜小电影 | 国产一区伦理 | 亚洲综合av一区 | av悠悠| 红桃av在线| 国产精品免费小视频 | 国产精品久久久久久久久免费高清 | 精品国产乱码久久久久久1区2区 | 天天躁日日躁狠狠很躁2023 | 一级特黄aa | 精品午夜一区二区三区在线观看 | 在线观看日本 | 神马影院一区二区三区 | 久久国产影院 | 网友自拍第一页 | 国产色综合网 | 99精品国产一区二区三区 | 国产91福利 | 91视频-88av | 久久久999精品视频 又黄又色的网站 | 人人看人人爽 | 好吊日精品视频 | 自拍视频在线网 | 国产高清一二三区 | 美女网站免费 | 国产成人97精品免费看片 | 私人午夜影院 | 日韩一区二区电影在线 | 久久国产日韩欧美 | 日韩久草 | 西西人体大胆www仙人掌 | 亚洲国产欧美在线 | 91国产丝袜在线播放 | 麻豆精品久久 | 成人性视频网站 | 国产精品 欧美精品 | 奇米狠狠操 | 国产探花在线精品一区二区 | 欧美日韩一级视频 | 亚洲电影中文字幕在线观看 | 国产美女喷水 | 激情自拍偷拍 | 成人精品亚洲人成在线 | 欧美日韩一区在线视频 | 成人黄色在线网站 | 亚洲国产一区二区三区a毛片 | 老师上课夹震蛋高潮了 | 在线cao| 中文字幕 欧美 日韩 | 黄色在线电影网址 | 欧美精品免费在线观看 | 色网在线视频 | 欧美性视频在线 | 少女与动物高清版在线观看 | 手机av免费| 成人黄色电影网址 | 电影一区中文字幕 | 免费黄色网址在线观看 | 亚洲五码中文字幕 | 亚洲大胆视频 | 亚洲精品视频久久 | 91亚洲成人 | 91精品婷婷国产综合久久蝌蚪 | 国产精品三级网站 | 国产视频不卡 | 免费操人视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 7777免费视频 | 国产国语videosex另类 | 91视频在线观看免费 | 国产精品一二三区在线 | 情侣黄网站免费看 | 成年人视频在线免费观看 | 国产小视频91 | 国产欧美一区二区三区在线老狼 | 久久精品国产成人一区二区三区 | av女优天堂电影网 | 欧美有码视频 | 日本高清视频免费观看 | 国产精品一级二级三级 | 欧美午夜片在线观看 | 一级片av| 和黑帮大佬的365 | 少妇视频在线观看 | 在线视频se | 丰满秘书被猛烈进入高清播放在 | 欧美色图婷婷 | 在线看国产视频 | 欧美日韩伊人 | 国产香蕉在线观看 | 中文字幕av日韩 | 亚洲精品视频免费观看 | 国内成人自拍视频 | 日韩成人av在线 | 五月天综合网站 | 91色交视频 | 中文字幕精品一区二区三区精品 | av成人综合| 国产精品久久久久久久久久久久久久 | 欧美精品久| 亚洲欧美在线免费观看 | 中文字幕+乱码+中文字幕一区 | 欧美色网在线 | av电影免费播放网站 | 亚洲日本护士毛茸茸 | 亚洲精品国产精品国自产 | 末路1997全集免费观看完整版 | 浮力影院国产第一页 | 日本xxx人妖hd丰满 | 欧美日韩一区在线观看视频 | 欧美在线黄| 色九九九 | 欧美一级日韩一级 | 激情五月婷婷综合 | 国产精品二区在线观看 | 日本在线视 | 国产一区二区三区电影在线观看 | 亚洲精品第一页 | 欧美精品一区三区 | 欧美专区在线观看 | 日韩欧美一区二区三区免费观看 | 久久久久久麻豆 | 麻豆男优| 老太太av| 中国videosex高潮hd | www网站在线观看 | 日本黄色电影网址 | 天天操中文字幕 | 日本xx网站 | 欧美日三级 | 一区 在线播放 | 成人动漫视频在线 | av中文字幕在线网站 | 丁香免费视频 | 中文字幕在线观看一区二区 | 日韩高清一区 | 中文字幕高清不卡 | 精品久久一二三区 | 日本成片网| 国产精品aaa | 激情久久av一区av二区av三区 | 毛片av中文字幕一区二区 | 麻花传媒免费观看 | 亚洲片在线| 成人在线观看你懂的 | 亚洲一区二区在线视频 | 操日本老太太 | 黄黄视频在线观看 | 91精品国自产在线观看 | 国产裸体舞一区二区视频在哪看 | 欧美夫妻性视频 | 涩涩成人在线 | 午夜精品网站 | 懂色av蜜臀av粉嫩av分享 | 久久综合成人精品亚洲另类欧美 | 九九热这里只有 | 日韩电影 中文字幕 | 欧亚av| 超碰av女优在线 | 亚洲国产福利在线 | 黄色免费国产 | avhd101高清谜片| 日韩在线观看 | 三级黄色av网站 | 在线观看黄色小视频 | 在线免费黄网 | 91麻豆免费在线观看 | 日韩精品视频一区二区三区 | 日韩不卡一区 | 在线免费福利 | 性一交一乱一精一晶 | 91麻豆产精品久久久久久 | 国产在线一| 色久影院 | 亚洲52av| 亚洲人成在线影院 | 91欧美日韩 | 萌白酱喷水视频 | sm暴露重口调教麻麻 | 美女免费网站 | 松本一香在线播放 | 亚洲人成在线播放 | 91高清免费在线观看 | 国产成人久久 | 国产欧美网站 | 日韩高清不卡一区二区三区 | 午夜视频在线观看一区二区三区 | 91成人网在线 | 久久免视频 | 美女久久久久久久久久久 | 91福利在线播放 | 日本婷婷色 | 农村搞破鞋视频大全 | 欧美日韩性视频 | 在线高清av | 国产日本一区二区 | 日韩中文字幕av在线 | 中文字字幕在线中文乱码电影 | 女女互慰揉小黄文 | 国产午夜精品一区二区三区四区 | 欧美激情免费视频 | 丝袜系列第一页 | 日韩激情网站 | 高清av一区二区三区 | 9191在线视频 | 美女福利视频 | 亚洲欧洲在线视频 | 福利片免费看 | 色偷偷成人 | 美女日批在线观看 | 国产黄色激情 | av在线资源播放 | 丝袜色综合 | 成人av免费在线 | 天堂中文在线视频 | 日本女优黄色 | 日本特黄一级高清 | 国产欧美一区二区三区另类精品 | 操穴在线 | 自拍偷拍在线播放 | 黄色小视频大全 | 国模视频一区二区三区 | 都市激情校园春色欧美 | av在线一区二区 | av网在线看 | av成人中文字幕 | 免费看黄的网址 | 欧美日韩国产精品一区 | 九九热青青草 | 亚洲成a人片在线观看中文 免费看黄视频的网站 | 亚洲热视频 | 亚洲图片欧美视频 | 欧美国产激情18 | 亚洲精品一级 | 亚洲福利影视 | 午夜亚洲视频 | 一区二区三区不卡在线观看 | 中文字幕在线观看不卡视频 | 免费在线观看小视频 | 国产精品一区二区三区在线播放 | 亚洲 欧美 国产 另类 | 影音先锋国产资源 | 精产国产伦理一二三区 | 欧美第一页在线 | 波多野结衣中文字幕一区 | av一区在线观看 | 一区二区三区在线视频观看 | 一区二区三区在线视频播放 | 欧美a在线 | 日韩精品999 | 在线成人福利 | 葵司有码中文字幕二三区 | 久色成人在线 | 伦理片中文字幕 | av在线2 | 176精品二区| 成人国产激情 | 中文字幕综合 | 亚洲图片日韩 | 国产自在线观看 | av大片在线免费观看 | 激情丁香久久 | 亚洲视频在线免费观看 | 欧美日韩亚洲一区二区三区在线观看 | 相亲对象是问题学生动漫免费观看 | 久久精品视频免费播放 | 第一av| 免费的av网址 | 欧美福利视频在线观看 | 精品无码三级在线观看视频 | 日本人の夫妇交换 | 亲嘴扒胸激烈视频 | 色午夜影院 | 国产麻豆精品theporn | 亚洲国产一区二区三区在线 | 久久99精品国产麻豆婷婷洗澡 | 婷婷天天色 | 色免费视频 | 国产精品一区二区三区免费视频 | 黄色高清视频在线观看 | 婷婷草 | 亚洲成在人线av | 你懂得在线观看 | 98视频在线观看 | 91大片免费看 | 国产激情视频在线 | 亚洲涩av | 亚洲欧美另类图片 | 亚洲韩国日本中文字幕 | 亚洲色图日韩av | 偷看洗澡一二三区美女 | 亚洲精品日韩欧美 | 女人扒开屁股爽桶30分钟 | 艳妇臀荡乳欲伦交换在线播放 | 国产一区二区免费看 | 射综合网| 影音先锋久久 | 天天干天天操天天射 | 免费看国产曰批40分钟粉红裤头 | 俺也去官网 | 色网在线免费观看 | 精品免费国产 | 91麻豆精品国产91久久久更新时间 | 天堂av网站 | 国产二区三区四区 | 久久国产精品区 | 在线看片中文字幕 | 人妖一区 | 国偷自产视频一区二区久 | 久久久久久av | 在线观看91av | 亚洲久久一区 | 香蕉视频ww| 欧美另类专区 | 激情久久av一区av二区av三区 | 天天射天天搞 | 国产欧美一区二区三区久久人妖 | 国产午夜精品一区二区三区 | 欧亚av| 欧美一区二三区 | 成人黄色激情网 | 在线观看麻豆 | 在线视频 亚洲 | 亚洲精品久久久一区二区三区 | 91在线一区二区 | 超91在线 | 欧美福利视频在线 | 黄污视频 | 国产一区91| 欧美裸体xxxx | 欣赏裸体国模梦怡私拍 | 久久伊人免费视频 | 被扒开腿一边憋尿一边惩罚 | 日本人体视频 | 精品国产户外野外 | 欧美在线激情网 | 91网站视频在线观看 | 欧美成人免费小视频 | 校园春色亚洲色图 | 日韩av电影在线免费播放 | 国产美女一区二区三区 | 日韩视频一区在线观看 | 天堂岛av| 美女又爽又黄网站泳装 | 色免费网站 | 狠狠v欧美v日韩v亚洲ⅴ | 宣宣影音先锋 | 亚洲狠狠 | 日韩经典在线视频 | 色眯眯av | 亚洲国产成人精品一区二区 | 97视频 | 亚洲欧美三级在线 | 日韩全黄 | 成人激动网 | 色久影院 | 制服丝袜第二页 | 中文字幕日韩有码 | 大尺度床戏无遮挡 | 亚洲77777| 国产黑丝一区 | 台湾佬中文字幕 | 亚洲视频一区二区三区 | 美女黄的视频全免费 | 久久综合av | 高跟丝袜av| 欧美区在线 | 亚洲午夜精品久久久久久久久 | 日本一区二区三区精品视频 | 国产主播福利在线 | 久久影院在线观看 | 偷拍精品精品一区二区三区 | 日韩黄色片在线观看 | 99久久伊人 | 亚洲黄色免费网站 | 欧美老肥婆性猛交视频 | 91精品麻豆日日躁夜夜躁 | 日韩一卡二卡三卡四卡 | 国产午夜精品久久 | 久久影院一区 | 最新av电影网 | 欧美黄色小视频 | 超碰免费在线播放 | 福利视频在线免费观看 | 一级视频在线播放 | 午夜中文字幕 | 天天色综| 亚洲精品在线观看网站 | 91在线视频观看 | 精品777| 91精品国产综合久久精品性色 | 日韩欧美成人激情 | 久久av.com| 福利影院在线 | 欧美 国产 亚洲 另类 动漫 | 日本不卡视频在线播放 | 亚洲精品影视在线观看 | 欧美俄罗斯乱妇 | 综合久久综合久久 | 99re在线视频观看 | 久久精品30 | 蜜臀av一区二区 | 免费福利av| 五月婷婷六月丁香 | 日本成年在线午夜电影 | 午夜私人影院 | 国产美女视频黄a视频免费 亚洲春色在线视频 | 国产视频手机在线 | 欧美成人猛片 | 神马午夜电影一区二区三区在线观看 | 日本丶国产丶欧美色综合 | 在线免费观看黄 | 自拍亚洲国产 | 有码在线视频 | 99久久精品费精品国产风间由美 | 久久国产影院 | 国产精品久久国产愉拍 | 日韩美女视频 | 精品久久久久久一区二区里番 | 色综合一区二区三区 | 欧美三级在线播放 | 亚洲欧美日韩精品久久奇米色影视 | www在线视频 | 亚洲卡一卡二 | av天天在线 | 青青草综合 | 午夜激情在线 | 德国艳妇丰满bbwbbw | 久久久九九 | 不卡一区二区在线 | 中文字幕日本三级 | 色999国产 | 国产一区免费电影 | 欧美激情在线观看视频 | 激情网站免费 | 国产精品一二二区 | 99久久亚洲精品 | 女人裸体视频免费看 | 免费中文字幕av | 亚洲精品四区 | ass极品水嫩小美女ass | 亚洲日本黄色 | 色狠狠干 | 可以直接看的av网址站 | 国产美女www爽爽爽视频 | 秋霞成人午夜伦在线观看 | 国产精品久久久久桃色tv | 欧美日韩中文在线观看 | 欧洲精品视频在线播放 | 欧美中文字幕在线观看 | 亚洲一区免费在线观看 | 在线观看老湿视频福利 | 瑟瑟成人网 | 久久全国免费视频 | 国产麻豆xxxvideo实拍 | 日韩中文字幕精品视频 | 中文字幕在线观看不卡 | 亚洲人成网在线播放 | 国产日产精品一区 | 91老司机精品 | 成人免费在线看片 | 日韩中文影院 | 香蕉久久网 | 先锋av资源网站 | 日韩亚洲在线观看 | 久久国产成人精品 | 欧亚视频在线观看 | 超碰97av| 一本色道久久88综合日韩精品 | 我们俩电影网mp4动漫官网 | 久久精品二区三区 | av国产一区 | 老司机精品视频导航 | 美女扒开下面让男人捅 | 黄黄视频在线观看 | 国产精品传媒视频 | 色婷婷亚洲一区二区三区 | 国产欧美日韩在线视频 | 欧美伊人精品成人久久综合97 | 91精品国产自产在线 | 黑森林福利视频在线导航 | 国产精品mv | 久久夜夜操 | 国产精品爽爽爽 | 国产裸体网站 | ass极品国模人体欣赏 | 在线免费看黄网站 | 日韩免费观看高清完整版在线观看 | 亚洲一区二区三区四区在线播放 | 蜜桃久久av | 99视频一区二区 | 日韩av中文字幕在线 | 亚洲女人天堂成人av在线 | 国产在线精品一区二区三区 | 中文在线最新版天堂8 | 麻豆影视在线播放 | 高跟肉丝祙做爰美妇小说 | 亚洲一级在线 | 欧洲精品国产 | 最近2019好看的中文字幕免费 | 国产福利电影在线 | 日韩亚洲一区二区 | 亚洲国产精品美女 | 欧美在线看片a免费观看 | 亚洲 中文 欧美 日韩 在线 | 亚洲成成品网站 | 91影院在线免费观看视频 | 亚洲成人激情av | 国产伦精品一区二区三区免费迷 | 亚洲精品自拍 | 国产精品久久在线观看 | 久久精品欧洲 | 美女永久免费网站 | 亚洲福利视频免费观看 | 日本嫩草视频 | 中文色视频 | 国产一区黄色 | 美女主播一区二区 | 国产一区二区手机在线观看 | 日韩一区二区三区av | 国产网站视频 | 打屁股sm视频 | 国产新婚露脸88av | 国产精品一级片在线观看 | 免费日本视频一区 | 成人免费在线电影 | 色大师av| 精品国产1区2区3区 成人永久在线 | 成年人黄色av网站 | 久久99精品久久久久久动态图 | 巨尻在线播放 | 国产精品电影一区二区 | 超碰在线最新 | 午夜激情网站 | 欧美国产极速在线 | 国产亚洲在线 | 日韩高清中文字幕 | 牛牛av影视 | 午夜激情综合网 | 99色在线| 国模妙妙超大尺度啪啪人体 | 光溜溜视频素材大全美女 | 天堂av一区二区三区 | 亚洲精品白浆 | 国产黄色激情 | 国产免费观看av | 一区二区欧美国产 | 成年人在线播放 | 国产精品视频久久久久 | 国产1区| 一区二区激情视频 | 中文字幕xxxx | 国内精品久久久久久久久 | 欧美午夜精品理论片a级大开眼界 | 主人惩罚尿奴裸体尿孔 | 久久精品电影一区二区 | 久久香蕉网 | 521色香蕉网站在线观看 | 免费成人看片 | 国产成人精品a视频一区www | 亚洲欧美综合精品久久成人 | 夜色视频在线观看 | 美女av网站 | 国产精品中文字幕一区二区三区 | 九色资源 | 日本一区二区成人 | 国产一区在线观看视频 | 伊人久色 | 欧美一区二区三区免费看 | 欧美性视频网站 | 美女黄色真播 | 欧美日韩视频一区二区三区 | 亚洲福利在线视频 | 夜色在线视频 | 91丨九色丨黑人外教 | 色婷婷5月 | 久久人人爽人人 | 牛牛热在线视频 | 深夜av| 五月天av网| 日本在线播放 | 女人爽到高潮免费视频 | 亚洲国产精品福利 | 成人免费大片黄在线播放 | 中文在线资源 | 黄色大片免费在线观看 | 国产亚洲精品久久久久动 | 五月天激情综合网 | 怡红院精品视频 | 久久蜜臀精品av | 俺来也综合 | 成人黄色免费片 | 日韩国产欧美在线观看 | 国产精品18久久久久久首页狼 | 首页中文字幕 | 成人漫画网站 | 激情福利在线 | 天天噜天天色 | 黄色小网站入口 | 超碰在线最新网址 | 日韩精品1区| 男女午夜在线观看 | 国产成人精品免费网站 | 一区二区三区内射美女毛片 | 国产美女主播在线 | 亚洲精品久久在线 | 国产福利免费在线观看 | 亚洲欧美日韩一区在线观看 | 97超碰资源 | 亚洲精品日韩在线 | 免费午夜在线视频 | 国产毛片精品国产一区二区三区 | 丁香视频全集免费观看 | 男人天堂视频在线 | 毛片av免费看 | 日韩一区二区电影在线观看 | 午夜影院18| 久久99高清 | 你懂的网址国产,欧美 | 看h片网站 | 日韩精品卡一 | 精品日韩欧美一区二区 | 午夜宅男av | 深夜资源网 | 一区二区三区四区中文字幕 | 亚洲在线第一页 | 国产在线观看免费视频今夜 | 日韩经典在线 | 亚洲国产h | 美女被出白浆 | 婷婷九月激情 | 美女黄十八岁以下禁止观看 | 91免费版在线 | 亚洲综合精品 | 影音先锋在线亚洲 | 亚洲午夜精品久久久久久浪潮 | 免费看的av网站 | 欧美香蕉视频 | 捆绑调教一区二区三区 | 久久久久久久av麻豆果冻 | 亚洲高清不卡在线 | 亚洲va韩国va欧美va精四季 | 欧美日韩免费观看一区=区三区 | 免费人成网在线观看品观网 | 国产免费一区二区三区在线观看 | 成人观看视频 | 欧美精品在线一区二区三区 | 国产视频不卡 | 久久色悠悠 | 对白刺激theporn | 中文字幕有码在线 | 国产精品 中文 | 中国av一区| 激情中文小说区 | 国产大尺度视频 | 国内av网站 | 亚洲天堂2020| 处破女av一区二区 | 欧美在线视频免费观看 | 欧美精品亚洲 | 午夜伦欧美伦电影理论片 | 国产成人8x视频一区二区 | 在线看片日韩 | 一区二区三区在线观看视频 | 成人国产亚洲欧美成人综合网 | 青青草免费在线视频 | av在线在线| 黄色的网站免费在线观看 | 成人久久久 | 精品在线一区 | 日韩女优中文字幕 | 亚一区| 不卡的毛片 | 精品午夜av | 韩国av电影在线 | 艳妇乳肉豪妇荡乳av | 日韩精品不卡在线 | 亚洲精品日韩av | 波多一区二区 | 天堂综合网久久 | 99r精品视频 | 成人日韩av | 麻豆av电影在线观看 | 黄色天天影视 | 林天顾悦瑶笔趣阁 | 在线观看涩涩 | 亚洲主播在线 | 中文在线视频免费观看 | 校园春色另类小说 | 三度诱惑免费版电影在线观看 | 国产一区在线视频 | 国产一区福利在线 | 国产精品高潮呻吟久久av野狼 | 免费精品国产 | 亚洲精品一区二区三区婷婷月 | 日本激情在线播放 | 成人精品视频网站 | 亚洲人成五月天 | 裸体写真在线观看 | 第四色7777 | 99免费视频 | 99精品国产一区二区三区不卡 | 亚洲伦理视频 | 国产亚洲精品精华液 | 欧美一区一区 | 性欧美极品另类 | 午夜激情视频在线观看免费 | 欧美一区二区三区的 | 三年中文在线观看免费版英语 | 日韩精品久久久久 | a毛片网站 | 久草视频观看 | 精品国产91久久久久久久妲己 | 影音先锋伦理片 | 大小姐av在线 | 亚洲福利小视频 | 欧美性教育视频 | 四虎精品视频 | 日本四级电影 | 中文字幕欧美日韩精品 | 日韩欧美一二三四区 | 国产精品传媒视频 | 爽爽淫人| 日韩精品成人在线观看 | 92视频网站 | 国产精品电影网 | 亚洲香蕉av在线一区二区三区 | 91成人网在线 | 欧美一区三区四区 | 国产精品porn | 99av国产精品欲麻豆 | 黄色www网站 | 日韩电影一区二区三区四区 | ass色迷迷的少妇pics | 亚洲va在线 | 欧美三个黑人玩3p | 亚洲国产免费 | 欧美久久久影院 | 国产69精品一区二区亚洲孕妇 | 午夜不卡视频 | 激情第四色 | 欧美cccc极品丰满hd | 美女露出让男生揉的视频 | 免费成人黄动漫网站 | 女生和男生一起插插插 | 欧美办公室高跟放荡xxx | 久久久91精品国产一区二区三区 | 热逼视频 | 老司机一区二区三区 | 老女人丨91丨九色 | aaa欧美大片 | av资源在线播放 | 先锋av在线资源 | 成人录像 | 先锋影音av资源网 | 加勒比日本在线 | 久久久久99精品国产片 | 欧美激情一区不卡 | 深田咏美种子 | 天堂av2017男人的天堂 | 李丽莎喷水国产一二区 | 男人天堂色偷偷 | 欧美色图久久 | 欧美国产第一页 | 北条美里 | 日韩小视频网址 | 女人爽到高潮免费视频 | 今天高清视频免费看 | 中文字幕www | 国产欧美日韩不卡 | 日韩精品 在线视频 | 欧美理论片在线观看 | 欧日韩精品视频 | 久久久久久国产免费 | 国产精品日韩av | 亚洲一二三在线 | 在线观看你懂的视频 | 国产xxxx裸体xxx免费 | 日本色图片 | 97成人资源 | 日韩不卡在线 | 九色论坛 | 2021国产精品 | 一本一道久久综合狠狠老 | 悠悠av | 夜夜操天天操 | 国产欧美亚洲视频 | 亚洲iv一区二区三区 | 国产精品aaaa | 激情一区 | 天堂久久久久久 | 水野优香番号 | 99999久久久久久亚洲 | 亚洲字幕久久 | 欧美裸体视频 | 黄色在线观看网 | 毛片区 | 国产亚洲电影 | 国产精品网站入口 | 久久久亚洲精华液精华液精华液 | 婷婷色香| 秋霞成人午夜伦在线观看 | 亚洲综合中文字幕在线观看 | 99热这里都是精品 | 这里只有精品视频 | 999zyz色资源站在线观看 | 国产网站av | 亚洲夫妻自拍 | 吊侵犯の奶水授乳羞羞漫画 | 欧美日韩国 | 免费网站在线观看视频 | 色综合一 | 亚洲国产欧美在线 | www免费视频 | 99久免费精品视频在线观78 | 涩涩av | 七月婷婷综合 | 91视频国产高清 | 精品久久久久久久久久久久久 | 男女调教视频 | 中文在线а√天堂 | 少女与动物高清版在线观看 | 国产黄色成人av | 黑名单上的人高清国语版免费 | 成a人片在线观看 | av最新版天堂资源在线 | 夜夜嗨av一区二区三区四季av | 国产一二三四 | 成人在线a| 日韩av在线一区二区 | 亚洲免费色 | 免费激情 | 亚洲另类一区二区 | 色图偷拍 | 欧美激情论坛 | 天天射日日干 | 中文字幕亚洲不卡 | 最新av在线| 一区二区三区毛片 | 六九影院 | 欧美午夜精品理论片a级按摩 | 亚洲成成品网站 | 制服丝袜 亚洲 | 日韩高清不卡一区二区 | 国产传媒视频 | 天天干天天舔 | 婷婷激情视频 | 91麻豆精品91久久久久同性 | 伊人五月 | 国产福利视频一区二区三区 | 日韩av电影中文字幕 | 国产精品亚洲综合 | 国产高清在线观看av | 男女羞羞在线观看 | 五月天激情图片 | 欧美专区 在线视频 | 国产xxxx岁13xxxxhd | 中日韩三级电影 | 日韩 视频 一区 | 欧美黑白配在线 | 欧美一区二区播放 | 男女午夜视频 | 国产欧美日韩视频 | 天天插天天操天天干 | 136av导航 | 樱花草av | 欧美国产一区二区三区 | 欧美日韩蜜桃 | 欧美日韩你懂的 | 草免费视频 | 久久久免费精品视频 | 97超级碰碰人国产在线观看 | 国产色视频一区 | 亚洲视频你懂的 | 激情自拍一区 | 免费av激情 | 2019天天操| 最新国产网站 | 国产成人av网站 | 黄页视频在线免费观看 | 丝袜网址 | 天天躁日日躁狠狠躁喷水 | 欧亚av在线| 丁香激情婷婷 | 中文av免费 | 99国内精品久久久久久久 | 国产精品久久久久久久久久小说 | 美女bbw嘘嘘嘘看个够 | 精品日本视频 | 黄色在线视频观看 | 亚洲午夜小视频 | 国产欧美亚洲视频 | 精品精品视频 | 国产伦理一区二区三区 | 91第一页| 欧美人与性动交ccoo | 色噜噜久久综合伊人一本 | 婷婷俺来也 | 婷婷综合六月 | 亚洲综合激情 | 在线成人av| 亚洲四区| 亚洲精品成人自拍 | 男生女生插插视频 | 伊人婷婷激情 | 97av超碰 | 国产精品2024 | 九九九九色 | 色佬视频在线观看 | 爱情岛亚洲品质自拍极速福利网站 | 日本视频免费在线播放 | 9久久精品 | 欧洲午夜视频 | 美女又黄又免费的视频 | 日韩欧美国产电影 | 韩剧19禁啪啪无遮挡大尺 | 1769在线视频 | 日本中文字幕二区 | 免费毛片在线 | 国产一区二区在线看 | 奇米影视四色中文字幕 | 麻豆国产一区二区 | 欧美精品xxx | h文网站 | 中文av网站 | 天天夜碰日日摸日日澡性色av | 亚洲男人网站 | 天堂资源中文在线 | 午夜激情视频在线 | 欧美日韩第一 | 国产视频1区2区 | www.激情av| 懂色av蜜臀 | 怡红院官网 | 成人一区二区三区四区 | 国产精品免费观看高清 | 麻豆久久一区二区 | 青春草在线免费视频 | 中午字幕av | 午夜写真片福利电影网 | 成人av免费网站 | www.黄色在线观看 | 亚洲第一视频在线观看 | av黄在线 | 自拍偷拍p| 成人在线欧美 | 大桥未久av一区二区三区中文 | 日韩视频在线观看 | 男人天堂色网站 | 爽爽淫人综合网网站 | 在线观看wwww | 女人床技48动态图 | 男人天堂 | av免费网站观看 | 成人午夜高清 | 日韩裸体网站 | 欧美日韩成人网 | 精选一区二区三区四区五区 | 色屁屁av | www视频在线观看 | 99国产亚洲精品 | 迷嫩下药灌醉一区二区 | 亚洲欧美另类图片小说 | 国产精品91在线 | 久久99精品国产麻豆婷婷洗澡 | 97在线视频免费播放 | 国产精品久久久久7777按摩 | 麻豆视频一区二区 | 亚洲国产女人aaa毛片在线 | av在线观| 波多野结衣成人在线 | 亚洲天堂中文字幕 | 亚洲三级久久 | 国产欧美一区二区三区在线 | 91精品国产福利 | 中文字幕佐山爱一区二区免费 | 欧美麻豆久久久久久中文 | 裸胸动漫 | 神马午夜影院 | 国产成人精品av在线 | av日韩亚洲| 黄色网址链接 | 北条美里| 一区在线观看 | 香蕉久久精品日日躁夜夜躁 | 欧美精品一区二区三区久久久 | 一区二区三区美女视频 | 国产高清自产拍av在线 | 又黄又免费 | 国产欧美日韩高清 | 日韩一级在线 | 成人国产精品免费观看视频 | 一本综合色 | 黑人巨茎大战欧美白妇 | 亚洲精品第一 | 国产精品久线在线观看 | 国产精品theporn | 男性裸体全身精光gay | 日韩精品视频一区二区三区 | a级片免费看 | 亚洲aaa精品 | 日韩精品在线免费观看 | 午夜av一区二区 | 亚洲最大的成人网 | 久久精品小视频 | 91久久国产综合久久 | 丁香六月综合激情 | 中文字幕成人在线 | 日产国产欧美视频一区精品 | 狠狠干在线观看 | 91免费小视频 | av在线电影播放 | 高跟丝袜av | 国产精品久久久久三级 | 欧美性xxxx极品hd满灌 | 午夜在线一区二区 | 欧美专区 在线视频 | 国产一区二区视频在线观看 | 欧美美女啪啪 | 亚洲精品一区二区三区中文字幕 | 在线一区二区日韩 | 中国单亲乱xxxx | 美女bb在线观看 | 视频你懂的 | 国产一区中文字幕 | 自拍偷拍第八页 | 国产乱码精品一区二区三区五月婷 | 国产精品一区二区在线播放 | 色偷偷网站 | 美谷朱里中文字幕 | 特级西西www44高清大胆图片 | 国产素人av | 中文亚洲欧美 | 午夜黄色一级片 | 国产福利在线 | 国产精品永久 | 欧美激情视频一区二区三区不卡 | 亚洲综合好骚 | 第四色首页 | 亚洲第二页 | 亚洲成人福利 | 国产a国产 | 综合五月婷婷 | 国产 在线 日韩 | 一本不卡av | 中文字幕不卡一区 | 成人三级小说 | 小伸进喷水网站 | 国产精品入口夜色视频大尺度 | 97看片网| 麻豆国产一区二区三区四区 | 少妇免费毛片久久久久久久久 | 欧美成人hd | 日日摸日日碰夜夜爽av | 日韩免费看 | 美女天天干 | 亚洲国产欧美久久 | 男女一区| 波多野结衣电影在线播放 | av在线草| 日本aa在线 | 美女色诱男人激情视频 | 牛牛免费视频 | 国产在线自 | 免费视频日韩 | 特级淫片裸体免费看 | 先锋影音av男人 | 裸尼姑熟蜜桃 | 99在线免费视频 | 韩国19禁床戏大尺度片 | 国产精品久久国产愉拍 | 中文字幕999 | 亚洲第五页 | 手机在线观看av网站 | 色综合久久综合 | 蜜桃网站在线 | 九九九九九九精品 | 999黄色片| 国产精品s色 | h片在线看 | 黄色影院在线看 | 秋霞在线观看av | 久久理论电影网 | 国产精品自拍偷拍视频 | 一区二区国产视频 | 日本成人免费在线 | 色综合天天 | 日本老师巨大bbw丰满 | 最新av电影网站 | 一级肉体全黄裸片8822tv | 男生和女生一起差差差视频 | 亚洲欧美精品一区 | 麻豆精品视频 | 国产麻豆视频一区二区 | 国产精品久久久久久久久久直播 | 欧美肥老妇视频 | 国产精品高清免费在线观看 | 久久人人爽爽爽人久久久 | 99精品在线观看视频 | 国产成人+综合亚洲+天堂 | 芒果视频在线观看免费 | 国产高清久久久久 | 欧美热逼| 天堂av网在线 | 国产午夜激情在线 | 欧美性猛交xxxx免费看久久久 | 国产亚洲伦理 | 免费看60分钟黄视频 | 亚洲伦乱视频 | eeuss鲁丝片eeuss影院 | 少妇裸体淫交视频免费看高清 | 极品探花在线播放 | 五月天色站 | 好爽…又高潮了免费毛片 | 天堂久久精品 | 欧美老女人在线视频 | 色花堂在线 | 国产成人亚洲精品 | 人人草在线视频 | 国产 欧美 自拍 | 中文字幕视频在线观看 | 国产一区二区三区视频在线 | 日本综合视频 | 日韩国产在线观看 | 精品视频免费在线 | 久草视频污 | 国产精品精品视频一区二区三区 | 一区二区三区四区五区 | 男人午夜天堂 | 久久男女视频 | 七七88色| 最近中文在线视频 | 艳情五月| 特级毛片爽www免费版 | 欧美精品丝袜久久久中文字幕 | 免费看裸体在线观看 | 爆操一线天 | 国产成人精品免高潮费视频 | 清纯唯美亚洲激情 | 一区二区三区四区在线免费观看 | 日本不卡一区二区 | 国产日韩欧美另类 | 宅男噜噜噜66一区二区 | 欧美三级视频在线观看 | 黄色在线视频观看网站 | 国产精品久久久久国产a级 av网站在线免费 | 日韩av一区二区三区在线观看 | 午夜小毛片 | 私人午夜影院 | 色婷婷av一区二区 | 精品三级在线观看 | 欧洲一区二区三区 | 在线观看波多 | 亚洲大片av | 综合网视频 | 色天使久久 | 国产精品一区免费在线观看 | 亚洲瘦老头同性xxxxx | 亚洲欧美综合网 | 欧美三区四区 | 亚洲精品中文字幕av | 亚洲 欧美 日韩 直播 | 欧美黄色网视频 | 在线不卡一区二区 | 欧美激情成人网 | 亚州成人 | 91久久黄色 | av免费在线观看网站 | 男操女视频在线观看 | 99久久精品一区二区 | 成人在线欧美 | 久久一区二区精品 | 精品国产一区二区三区忘忧草 | 国产在线播放一区二区 | 91精品国产色综合久久不卡粉嫩 | 男人干女人网站 | 成人av男人的天堂 | 日韩毛片在线免费观看 | 亚洲视频第一页 | 国产精品户外野外 | 欧美动态视频 | 欧洲免费在线视频 | 日韩不卡av| 欧美午夜精品在线 | 97人人模人人爽人人喊中文字 | 天堂8在线| 国产一区二区三区在线观看免费视频 | 黄色在线播放网站 | 成熟女人毛片 | 国产福利在线视频 | 色a在线观看 | 中国免费高清视频在线观看 | 精品在线视频一区 | 欧美日韩第一 | 亚洲高清一区二区三区 | 免费成人美女在线观看. | 5g影院天天爽成人免费下载 | 日韩av中文字幕一区二区 | 人人看人人爽 | 黄色小视频免费网站 | 亚洲v天堂| 久久久久国产精品一区三寸 | 青娱乐一区 | 久久春色 | 香港日本韩国三级网站 | 成人看的网站 | 国产裸体舞一区二区视频在哪看 | 五月天国产精品 | 国产99精品| 午夜精品福利久久久 | 制服丝袜第二页 | 九色蝌蚪91porny | 午夜xx | 亚洲成人高清 | 55夜色66夜色国产精品视频 | 欧美在线制服丝袜 | 亚洲毛片网 | 91影院在线观看 | 久久久中精品2020中文 | 激情在线五月天 | 欧美在线观看一区二区三区 | 啪啪av导航 | 国产精品久久久久久久久久久久久 | 色综合天天综合网国产成人网 | 日本黄色小网站 | 日韩在线播放一区二区 | 尤物视频免费观看 | 让人下面流水的视频 | 日日操夜夜摸 | 激情开心网站 | 午夜久久电影 | 打屁股网址 | 欧美综合国产 | 夜趣福利网址导航 | 久久精品国产一区二区电影 | 色七七桃花影院 | 国产精品欧美精品 | 精品毛片在线 | 亚洲精品一区国产精品 | 美女日批免费视频 | 欧美三级在线播放 | 护士裸体看个够 | 成人精品在线观看 | 欧美vieox另类极品 | 性猛交富婆╳xxx乱大交3d | 亚洲综合在线免费观看 | 肉色丝袜脚交一区二区 | 亚洲国产日韩一区 | 欧美 视频 一区 | 天天色爽| 在线欧美色 | 中文字幕 日本 | 国产高清在线观看av | 欧美日韩在线播放三区四区 | 色资源二区在线视频 | 91麻豆视频| 国产一区二区网址 | 四虎在线免费观看 | 7799精品视频| 免费不卡在线观看av | 一区二区在线免费视频 | 亚洲精品xxxx | 国产无遮挡一区二区三区毛片日本 | 午夜性刺激免费看视频 | 一区二区三区欧美在线 | 成人黄色在线观看 | 91成人超碰 | 91偷拍精品一区二区三区 | a级激情片 | 亚洲精品乱码久久久久久按摩观 | 国语精品一区 | 亚洲丝袜在线视频 | 日韩一区观看 | 黄色av网址在线免费观看 | 不卡精品视频 | av免费网站 | 日韩中文欧美 | 精品国产电影一区二区 | 成人深夜视频在线观看 | 一区二区不卡在线 | 奇米影视888狠狠狠777不卡 | 中文字幕高清不卡 | 亚洲乱亚洲乱妇无码 | 国内福利视频 | 日韩国产精品视频 | 打屁股视频网站 | 天堂网2014av| 日韩欧美不卡一区 | 村姑电影在线播放免费观看 | 秋霞国产午夜精品免费视频 | 石原莉奈一区二区三区在线高清 | 国产亚洲一区二区精品 | 国产福利亚洲 | 麻豆91免费看 | 国产麻豆视频一区二区 | 亚洲性网 | 久久综合影院 | 欧美日韩一卡二卡三卡 | 97超级碰碰碰久久久 | 99国精产品 | 欧美猛交ⅹxxx乱大交视频 | 成人短视频在线播放 | 亚洲男性天堂 | 成人激情视频网站 | 久久精品国产免费看久久精品 | 日韩免费视频一区二区三区四区 | 亚洲精品日本 | 丁香婷婷综合激情五月色 | 欧美老女人性生活 | 欧美激情欧美激情在线五月 | a三级视频| 久久国产精品免费 | 久草天堂| 亚洲女人天堂 | 99精品在线观看视频 | 中文字幕婷婷 | 午夜av在线免费观看 | 天堂av一区二区三区 | 卡通动漫精品一区二区三区 | 日韩欧美国产高清 | 色婷婷综合久久久久中文一区二区 | 波多野结衣高清在线 | 国产精品高潮视频 | 91麻豆精品国产91久久久久 | 成人黄色中文字幕 | 精品视频一二 | 国产一区日韩一区 | 中文字幕一区二区三区日韩精品 | 99精品视频一区 | 村上里沙av在线 | 日韩在线视频免费观看 | 欧美在线观看视频一区二区三区 | 天天影视色香欲综合 | 国产精品麻豆欧美日韩ww | 免费网站免费黄 | 98精品国产高清在线xxxx天堂 | 欧美美女做受 | 中文字幕在线一区 | 在线观看亚洲一区 | 国产专区一区二区 | 日韩激情av| 中文字幕在线观 | 俺去俺来也www色官网 | 国产视频福利 | av人人爽 | 色综合久久久 | 一区二区三区四区精品 | 视频一区二区三区在线 | 欧美日韩中文字幕综合视频 | 日韩免费中文 | 欧美日韩卡一 | 91麻豆国产福利在线观看 | av网站大全在线免费观看 | 成人妖精视频yjsp地址 | 久久久久久久久久婷婷 | 亚洲一区免费 | 国av在线 | 欧美日韩在线不卡 | 日本色图片 | 自拍偷拍第1页 | 久久久久久九九 | 97超视频| 国产黄色在线免费看 | 被绑在床强摁做开腿呻吟 | 日韩欧美国产一区二区三区 | 日韩在线中文 | 国产亚洲在线观看 | 亚洲a中文字幕 | 久久精品电影网站 | 在线视频免费观看你懂的 | 亚洲成人免费看 | 蜜臀a∨国产成人精品 | 台湾久久 | 午夜两性| 国产精品日韩一区二区三区 | 深夜福利国产精品 | 91久久夜色精品国产网站 | 欧美国产视频在线观看 | 国产三级精品网站 | 欧美国产激情二区三区 | 亚洲视频在线播放 | 亚洲 欧美 激情 小说 另类 | 亚洲理论在线观看 | 国产目拍亚洲精品99久久精品 | 丝袜麻麻被肉干高h潮文不断 | 亚洲精品一二 | 色哟哟国产精品免费观看 | 在线免费观看小视频 | 69av在线视频| 免播放器在线视频 | 日韩在线视频播放 | 美女阅读挑战高潮视频 | 亚洲伊人婷婷 | 能在线观看的av网站 | 色婷婷天堂 | 亚洲在线日韩 | 激情久久一区二区 | 在线观看理论片 | 欧美人在线视频 | a天堂在线观看视频 | 日韩高清在线观看 | 亚洲激情av在线 | 动漫精品一区二区三区 | 99久久精品网 | 丁香社区五月 | 国产资源在线看 | 国产日产精品一区二区三区四区 | 理伦片三在线播放 | 先锋影音av资源网站 | 337p日本欧洲亚洲大胆精品 | 97人澡人人添人人爽欧美 | 亚洲精品国产精品乱码不99按摩 | 91老司机精品视频 | 日韩国产在线播放 | 美国免费高清电影在线观看 | 国产综合av一区二区三区 | 影音先锋成人在线 | 久久久久久久久一区 | 欧美日韩在线免费观看 | 男人操男人网站 | 韩国美女主播跳舞 | 黄色小视频在线免费观看 | 亚洲欧洲日产国码av系列天堂 | 亚洲69av| 黑丝高跟在线 | 欧美日韩三级一区 | 国产精品久久久久久中文字 | 九色在线观看视频 | 国产欧美综合在线 | 亚洲一区二区福利 | 成人a毛片| 亚洲午夜久久久久 | 一品色 | 日日夜夜精品视频免费 | 亚洲精品调教 | 五月婷丁香| 影音先锋中文字幕在线播放 | 精品久久久久久中文字幕大豆网 | 成人深夜视频 | 黄色免费网站视频 | www.麻豆av.com| 久久精品成人欧美大片 | 日本成年在线午夜电影 | 欧美一区二区三区的 | 男男黄网站 | 国产精品久久久久久久久久东京 | 69天堂| 日韩天堂在线观看 | 亚在线视频 | 免费成人美女在线观看 | 色偷偷噜噜噜亚洲男人 | 中文字幕精品久久 | 美女喷水视频网站 | 欧美极品欧美精品欧美视频 | 亚洲免费人成在线视频观看 | 在线国产网址 | 日韩一区av在线 | 男女男精品视频 | 天天碰视频 | 日日操夜夜撸 | 国产激情自拍视频 | 老司机导航视频 | 日韩激情电影在线 | 91精品一区二区 | 中文字幕一区二区三区av | 成片免费观看 | 日韩午夜片 | 一二三区在线观看 | 手机看片1024久久 | 免费成人美女女电影 | 亚洲妇女av | 国产一区不卡在线 | 自拍毛片 | 欧美色香 | 最新在线中文字幕 | 黄网站色视频免费观看 | 国产在线观看a | 国产一区二区不卡视频 | 日本在线免费看 | 一区在线观看 | 美女被草 | 国产在线视频一区二区三区 | 老司机导航视频 | 精品久久国产字幕高潮 | 91在线看国产 | 男女激情久久 | 久久精品欧美视频 | 久久综合网址 | 亚洲欧美国产一区二区三区 | 96精品视频在线 | 国产成人在线一区二区 | 国产一区二区在线免费视频 | 亚洲成人777 | 国内偷拍av | 天天射寡妇射 | 国产一区二区三区久久久 | 日韩特级片 | 日韩一区二区免费视频 | 欧洲一级视频 | 黑丝美女上床 | 国产精品三级 | 色国产在线观看 | 自拍视频二区 | 美女免费视频一区二区 | 一区二区在线观看免费 | 黄色成人免费在线 | 丁香六月五月婷婷 | 国产精品久久久久999 | 最新国产在线拍揄自揄视频 | 相亲对象是问题学生动漫免费观看 | 蜜臀久久99精品久久久画质超高清 | 男生c女生 | 国产欧美一区二区精品忘忧草 | 精品一区二区在线免费观看 | 亚洲五月六月丁香激情 | 欧美国产亚洲视频 | 久久国产福利国产秒拍 | 寂寞空庭春欲晚吃馒头 | 日韩在线观看免费高清 | 五十路母| 一区国产精品 | 野花日本hd免费高清版7 | 在线看黄色网址 | 天堂av观看 | free×性护士医生videos猛烈 | 亚洲欧美福利视频 | 一区二区在线中文字幕 | 成人影片在线 | 九九香蕉视频 | 欧美男女动态图 | 日本美女爱爱视频 | 国产在线观看免费视频今夜 | 大香成人 | 黄网页在线观看 | 捆绑最紧bdsm视频 | 丝袜制服亚洲色图 | 台湾佬中文在线 | 国产制服在线 | 91色精品 | 日韩av在线电影网 | 在线免费av观看 | 中文字幕av有码 | 五月婷婷六月天 | 蜜桃视频在线网站 | 青青操狠狠干 | 欧美裸体网站 | 第一福利官方导航大全 | 日本视频在线播放 | 亚洲第一区在线 | 久久99亚洲网美利坚合众国 | 日日摸日日添日日躁av | 国产小视频在线免费观看 | 免费在线观看你懂的 | 亚洲国产第一 | av正在播放 | av播播 | 黑人做爰xxxⅹ性少妇69 | 国产精品成人一区 | 欧美 日韩 亚洲 一区 | 天堂av在线资源 | 亚洲精品一卡二卡 | 超碰国产97 | 午夜一级片 | 国产日韩欧美一区在线 | 一区二区三区精品视频在线观看 | 97在线视频精品 | 自拍偷拍 亚洲一区 | 伊人av导航 | 破处在线 | av免费在线一区 | 日本99精品 | 日本美女视频一区二区 | 久久国产福利国产秒拍 | 精品亚洲一区二区 | 中文字幕一二区 | 国产日韩欧美成人 | 高清免费在线视频 | free性娇小hd第一次 | 国内外成人免费激情在线视频 | 葵司av电影 | 亚洲不卡在线 | 欧美视频三区 | 精品亚洲一区二区 | 国产午夜视频 | 好妞色妞国产在线视频 | 日韩中文字幕精品一区 | 中国字幕| 成人亚洲黄色 | 国产伊人网 | 国产色哟哟在线观看 | 91精品国产网站 | 久视频在线 | 宅男噜噜噜666在线观看 | 成人黄色网址在线观看 | 国产婷婷色一区二区三区在线 | 成人在线观看免费高清在线观看 | 日本黄色小说 | 免费看女生裸体视频 | 99色在线| 日本午夜一区 | 亚洲天堂免费视频 | 善良的少妇伦理bd中字 | 韩国三色电费2024免费吗怎么看 | 日av在线播放 | av在线色 | 男人扒开女人的腿操 | 意大利性经典xxxxx | 日韩视频在线观看免费 | av免费在线电影 | 国产伦理一区 | 成人激情视频在线观看 | 97狠狠操 | 在线观看小视频 | 国产欧美不卡 | 精品国产乱码久久久久久久 | 99日韩 | 新婚之夜高潮hd | 亚洲人午夜精品 | 粉嫩av中文字幕 | 亚洲影视在线播放 | 人人视频精品 | 婷婷另类小说 | 国产精品羞羞答答 | 欧美午夜精品久久久久免费视 | 女生扒开尿口让男生捅视频 | 国产在线观看一区二区三区 | 色婷婷国产精品综合在线观看 | 欧美 日韩 成人 | 国产欧美自拍一区 | 亚洲女人被黑人巨大进入 | 在线观看av一区二区 | av免费观看久久 | 成人午夜激情视频 | 日韩av电影网站 | 欧美在线二区 | 日av中文字幕 | 动漫美女的胸被狂揉扒内衣 | 少妇一级淫片免费 | 黄页网站免费观看 | 国产精品久久一区 | 黄色应用在线看 | 久久色在线视频 | 免费av网站在线观看 | 亚洲国产成人精品久久 | 欧美高清在线一区二区 | 中文字幕18 | 亚洲精品1| 色在线免费视频 | 欧美激情网站在线观看 | 国产91清纯白嫩初高中在线观看 | 天堂√在线中文官网在线 | 91国产精品91 | 天天草视频 | 日韩一区免费观看 | 国产精品亲子乱子伦xxxx裸 | 免费黄色美女网站 | 精品一区网站 | 日日摸日日碰夜夜爽av | 中文字幕高清不卡 | 女生隐私免费看 | 成人在线免费看 | 三级av网 | 337p日本欧洲亚洲大胆色噜噜 | 国产黄色在线免费 | 在线观看一区不卡 | 最新激情网 | 精品午夜视频 | 一级卡毛片 | 总裁憋尿呻吟双腿大开憋尿 | 久久精品8 | 国产在线欧美 | 欧美丰满美乳xxx高潮www | 日本黄色免费网站 | 精品五月天 | 秘密基地免费观看完整版中文 | 久久久久久国产精品一区 | 日韩久久久久 | 波多野结衣中文字幕一区二区三区 | 亚洲一级黄色片 | 国产精品自拍一区 | 久久开心网 | 日韩天堂在线观看 | 日本护士毛茸茸体内精 | 亚洲乱码视频 | 久久99精品国产麻豆不卡 | 成人春色激情网 | 日韩精品免费一区二区夜夜嗨 | 婷婷av在线 | 午夜久久久久久久久久一区二区 | 免费看黄色91| 西西人体一区二区 | 亚洲综合图片区 | 97人人模人人爽人人少妇 | 中文字幕一区二区三区四区不卡 | 一二区在线视频 | 国产一区二区精品免费 | 18女人毛片 | av在线资源观看 | 日本999视频 | 四虎影视永久免费 | 欧美性色网 | 你懂得在线 | 国av在线 | 日本女人一区二区三区 | 亚洲电影在线观看 | 被黑人伦流澡到高潮 | 久在线| 国产一卡二卡三卡视频 | 在线视频中文字幕第一页 | 91免费看网站 | 91精品综合久久久久久 | 中文字幕亚洲专区 | 欧美精品在线免费观看 | 日本不卡视频在线 | 免费激情av | 五月天视频一区 | 9i免费看片黄 | 182国产在线观看 | 亚洲视频在线观看一区 | 肉丝袜脚交视频一区二区 | 国产女人裸体 | 先锋影音av在线 | 最新地址在线观看 | 日本视频在线播放 | 欧美视频在线观看一区二区 | 国内自拍小视频 | 五月婷婷七月丁香 | 日韩欧美一区在线观看 | 搞黄网站免费看 | 天堂中文在线资源在线观看 | 九色蝌蚪porny | 又粗又硬又黄又爽的视频 | 亚洲福利视频久久 | 国产同性人妖ts口直男 | 精品对白一区国产伦 | 黑森林av导航 | 欧美成人久久 | 肉性天堂 | 日韩电影免| 久久99国产精品久久99 | 国产成人一区二区在线 | 欧美videosex性欧美黑吊 | 日本美女啪啪 | 日韩精品视频免费在线观看 | 国产疯狂性受xxxxx喷水 | 欧美日韩亚洲一区二区三区在线观看 | 成人刺激视频 | 性感美女高潮 | 亚洲欧美www| 337p人体粉嫩胞高清视频 | 亚洲经典一区 | 福利小视频导航 | 亚洲一级二级在线 | 欧美一级淫片007 | 91精品国产99久久久久久 | 精品亚洲成人 | 日韩高清在线一区 | 欧美成人video | 国产一区av在线 | 亚洲精品水蜜桃 | 亲嘴扒胸摸屁股免费视频日本网站 | 4438xx亚洲最大五色丁香一 | 老鸭窝亚洲一区二区三区 | 91精品国产综合久久国产大片 | 一区二区三区91 | 黄色视屏在线看 | 松本一香在线播放 | 国产欧美一区二区三区国产幕精品 | 欧美一区二区免费 | 色污网站在线观看 | 日韩怡春院 | 黄色精品一区二区 | 黄色工厂在线观看 | 日本丰满bbwbbw厨房 | 国产欧美日韩中文 | 国产精品免费观看高清 | 天堂av中文在线 | 欧美自拍区 | 成人在线超碰 | 精品香蕉视频 | 最新暗呦小u女在线播放 | 国产精品久久久久久亚洲调教 | 久久亚洲精选 | 91亚洲精品视频 | 天海翼一区二区三区免费 | 成人免费在线播放视频 | 18网站视频| 欧美成人精品在线 | 免费看黄色aaaaaa 片 | 欧美色淫网站 | 免费黄色小视频 | www国产成人 | 狠狠亚洲 | 色香蕉导航 | 足恋天堂丨vk | 日韩欧美天堂 | 午夜男人视频在线观看 | 久久久久欧美 | 久久99精品久久久久子伦 | 国产一区二区精品在线 | 国产精品一区二区久久久 | 很黄的视频网站 | 中文字幕一区二区三 | 天堂色婷婷 | 日本簧片 | 美女福利在线观看 | 美女扒开腿让男生桶 | 911视频高清完整版在线观看 | 不用播放器的av | 久久色资源 | 日日天天 | 久久波多野结衣 | av狠狠操| 国产精品麻豆成人av电影艾秋 | 最新国产精品久久 | 久久久91精品国产 | 娇妻被老王脔到高潮失禁视频 | 成人在线观看网站 | 久久资源免费视频 | 色yeye网站 | 91高清视频在线 | 天天做天天摸天天爽天天爱 | 国产精品18 | 影音先锋激情在线 | 亚洲第一精品电影 | 久久天堂热 | 黄色天天干 | 午夜影院免费体验区 | 欧美精品亚洲精品 | 韩国日本美国免费毛片 | 少妇激情视频 | 国产黄色小视频在线 | 四虎影院一区二区三区 | 日韩美女视频19 | 亚洲精品日韩激情在线电影 | 超碰这里只有精品 | 桃色一区 | 免费成人在线观看视频 | 黄色频在线观看 | 影音av先锋 | 欧美有码在线观看 | 香港av电影 | 在线播放91 | 中文字幕av专区 | 婷婷精品国产一区二区三区日韩 | 美女精品毛片 | 国产这里只有精品 | 在线免费观看黄色网 | 欧洲成人在线视频 | 成年视频免费高清在线看 | 成人国产精品免费观看动漫 | 国产精彩视频在线播放 | 夜夜夜久久久 | 91麻豆精品久久久久蜜臀 | 97精品一区二区视频在线观看 | 久久99精品视频 | 亚洲欧美激情一区二区 | 亚洲三级观看 | 久久国产精品久久久久久电车 | 国产日韩欧美中文 | 婷婷色一区 | 原神女裸体看个够无遮挡 | 国产91精品入口 | 红桃一区二区三区 | 中文字幕系列 | 国产xxxx在线 | 老司机深夜福利视频 | 欧美女同一区 | 欧美日韩一区在线观看 | 一区二区三区四区视频在线观看 | 俺去俺来也在线www色官网 | 日韩欧美精品在线视频 | 精品久久中文 | 亚洲国产精品久久久久秋霞不卡 | 日本不卡免费高清视频 | 动漫美女被吸乳奶动漫视频 | 秋霞成人午夜伦在线观看 | 成人免费观看网址 | 美日韩三级 | 亚洲国产精品女人久久久 | 98成人网 | 女人被爽到呻吟gif动态图下载 | 日本中文字幕在线观看 | 欧美a级成人淫片免费看 | 好大好舒服视频 | 国产精品久久久久9999高清 | 1区2区3区精品视频 日韩一区二区电影在线 | 国产精品久久久久久久久久妞妞 | 欧美激情影音先锋 | 色橹橹在线视频 | 人妖网站| 18岁禁网站 | av资源网址 | 女人高潮视频网站 | 久久黄色网 | 亚洲第一精品电影 | 国产1区在线观看 | 日韩精品一区二区三区在线播放 | 国产精品图片 | av新天堂| 黄色www视频 | 蜜臀久久99精品久久久无需会员 | 第四色狠狠 | 国产黄色高清视频 | av狠狠干 | 欧美日韩免费高清 | 思思久久99热只有频精品66 | 欧美高清视频在线播放 | 天天综合在线观看 | 制服丝袜色图 | 欧美性xxxxxx少妇 | 色偷偷超碰av人人做人人爽 | 手机av电影在线 | 水蜜桃亚洲一二三四在线 | 日本大片一级 | 影音先锋毛片 | 麻豆av电影在线观看 | 欧美12一14sex性hd | 精品高清视频 | 日韩中文字母 | 性高湖久久久久久久久 | av播放在线观看 | 91每日更新 | 爆操jk| 中文字幕在线第一页 | 久草视频观看 | 亚洲国产丝袜 | 欧美日韩网址 | 精品三级在线看 | 深夜av | 超碰av女优在线 | 日韩欧美午夜 | 欧美成人一区在线 | 自拍偷拍校园春色 | 亚洲国产成人一区 | 黄网视频在线播放 | 国产在线超碰 | 亚洲国产精品视频一区 | 亲子乱一区二区三区电影 | 日韩欧美在线国产 | 一区视频在线 | 国产日韩欧美电影在线观看 | 自拍视频在线网 | h视频免费在线观看 | 日韩精品免费一区二区三区竹菊 | 免费在线看黄色的网站 | 色哟哟入口国产精品 | 日韩中文字幕视频在线观看 | 国产精品不卡在线观看 | 国产欧美精品久久久 | 中文字幕一区二区三区5566 | 亚洲 欧美 激情 小说 另类 | 精品久久久久久综合日本 | 乱lun岳第80部分 | 伊人久久大香线蕉综合网站 | 美女扒开下面让男人捅 | 日日夜夜中文字幕 | 黑人和白人做爰 | 欧美日韩激情一区二区三区 | 久久综合入口 | 欧美日韩成人在线 | 91久久奴性调教 | 国产精品一区二区三区久久 | 欧美日韩一 | 国产精品欧美日韩 | 日本xxx护士18一19高潮 | 久久国产精 | 国产日韩在线看片 | 国产精品 欧美日韩 | 免费在线播放视频 | 国产精品久久久亚洲 | 欧美成年网站 | 国产男男gay体育生网站 | 超碰个人在线 | 国产精品www.| 亚洲精品日韩av | 欧美视频三区 | 2018av中文字幕 | 色94色欧美sute亚洲线路一久 | 久久久久国 | 日本性毛片 | 欧美 日韩 在线播放 | 动漫玉足吸乳羞免费网站玉足 | 99精品欧美一区二区三区 | 成人在线播放av | 中文亚洲欧美 | 91综合国产| 国内精品在线播放 | 午夜爱精品免费视频一区二区 | 99热最新在线 | 午夜精品福利一区二区蜜股av | 天天亚洲| 女人叫床高潮娇喘声录音mp3 | 国产成人97精品免费看片 | 777视频| 成人在线观看视频网站 | 女同 另类 激情 重口 | 欧美区一区二 | 中文字幕亚洲综合久久 | 中文字幕视频在线 | 中文字幕免费高清在线 | 色老头视频在线观看 | 欧美日韩伦理一区二区 | 精品成人在线视频 | 日韩欧美一区视频 | 欧美色爽 | av在线播放网站 | 久久国产麻豆精品 | 成人国产精品免费观看视频 | av中文字幕在线网站 | 国产麻豆一区二区 | 九九色| 激情婷婷 | 国产1区在线 | 国产福利免费在线观看 | 国产精品视频久久久 | 裸体写真在线观看 | 日本不卡免费在线视频 | 国产欧美日韩综合精品二区 | 亚洲精品在线观看免费 | 午夜性刺激免费视频 | 欧美日本国产在线 | 成人激情影视 | 91婷婷韩国欧美一区二区 | 日韩经典一区二区 | 巨茎人妖videos另类 | 免费av网址在线观看 | 黄网站免费观看视频 | 成人免费在线网站 | 欧美另类一区二区三区 | 国产精品腿扒开做爽爽爽挤奶网站 | 日韩精品四区 | 午夜激情欧美 | 久久91亚洲精品中文字幕奶水 | 成人午夜精品 | 亚洲综合自拍偷拍 | 日韩欧美成人免费视频 | 不卡视频一二三 | av中文在线| 日韩精品自拍偷拍 | 91综合网| 久久精品av | 视频一区二区欧美 | 99re6热只有精品免费观看 | 国产丝袜视频 | 调教扩张尿孔针刺重口 | 日韩黄色一级片 | 热舞福利精品大尺度视频 | 91免费观看视频 | 高清国产一区二区三区四区五区 | 3d动漫精品啪啪一区二区竹菊 | 黄色小说视频在线 | 岛国av网站| 国产精品欧美日韩 | 美女扒开内裤让男人桶 | 国产电影免费观看高清完整版视频 | 日本精品国产 | 国产有码一区二区 | 国产女同一区二区 | 宅男天堂av | 中文字幕综合 | 国产一区二区日韩精品 | 五月激情在线 | 性感美女视频一区二区 | 在线观看亚洲精品视频 | 国产精品99久久久久久人 | 黄网站在线观看 | 国产精品九九九 | 色婷婷午夜| 大胸美女网站 | 桃色天堂| 奇米97| 日日色视频 | 欧美激情一区二区在线 | 国产网站色 | 色婷婷av一区二区三区软件 | 欧美国产激情 | 青娱乐国产91 | 女人av网 | 亚洲精品少妇 | 18网站免费| av中文天堂在线 | 国产精品扒开腿做爽爽 | 亚洲 欧美 另类 综合 偷拍 | 亚洲视频在线一区 | 日韩少妇视频 | 久久久久久18 | 精品国产日韩欧美 | 久久亚洲私人国产精品va | 黄页视频网站 | 色婷婷六月 | 日本美女爱爱视频 | 色中色tv| 精品96久久久久久中文字幕无 | 日韩性视频 | 国产精品一区二区三 | 在线天堂v | 日日爽天天 | 女性私密整形视频 | 欧美一二三区 | 亚洲欧美日韩综合一区 | 久久伊人蜜桃av一区二区 | 视频在线国产 | 黄页免费网站 | 欧美极品在线播放 | 色琪琪久久se色 | 国产精品综合一区二区 | 中文字幕精品一区 | 免费裸体视频 | 日本黄色三级 | 天天摸夜夜添狠狠添婷婷 | 中国免费高清视频在线观看 | 777免费视频 | 草1024榴社区成人 | 99日韩| 亚洲日本色 | 中文字幕第一区 | 特级西西www44高清大胆图片 | 宅男午夜网站 | 日韩免费一区二区三区 | 模特写真福利内部视频 | 好色婷婷 | 日韩毛片在线免费观看 | 亚洲一区二区精品视频 | 亚洲成人一区 | 91精品一区二区三区久久久久久 | 欧洲精品二区 | 中文字幕高清在线免费播放 | 极品美女高潮出白浆 | 欧美日本韩国一区 | 午夜国产福利 | 精品午夜一区二区 | 亚洲国产日韩欧美一区二区三区 | 中文视频一区 | 韩国欧美一区二区 | 日韩在线观看你懂的 | 亚洲精品久久区二区三区蜜桃臀 | gogo西西人体大尺度大胆喷水 | 国产欧美精品日韩 | 日本中文在线观看 | 国精品一区二区 | 精品久久久久久久久久久久 | 亚洲国产小视频在线观看 | 北条麻妃av电影 | 欧洲一区二区视频 | 日本黄色免费网站 | 黄色免费看网站 | 国产美女网 | 精品国产一区二区三区av性色 | 91麻豆精品国产91久久久久推荐资源 | 9999热| www.久久久久久久久 | 精品女同一区二区三区在线观看 | 美女扒开尿口让男人捅爽 | 五月婷婷激情综合网 | 欧美在线播 | 色婷婷激情一区二区三区 | 男男受被啪到高潮自述 | 欧美日韩国产影院 | 狠狠躁日日躁夜夜躁影院 | 免费精品视频一区二区三区 | 波多野结衣久久精品 | 怡红院av一区二区三区 | 色综合加勒比 | 国产一级全黄 | 性欧美video另类hd尤物 | 欧美日韩h| 亚洲一区在线视频观看 | 国产精品666 | 歪歪视频在线观看 | 国产精品国产一区二区 | 亚洲麻豆 | 99r精品视频| 天天躁日日躁狠狠躁欧美 | 香蕉色综合 | 草逼视频网站 | 日本伦理片在线播放 | gogo亚洲国模私拍人体 | 豆花免费跳转入口官网 | 成年人免费av | 91黄色免费看 | 国产美女被草 | 午夜毛片在线观看 | 亚洲国产精品综合小说图片区 | www视频在线观看网站 | 三男一女吃奶添下面 | 国产经典一区二区 | 国产高清不卡 | 日本在线免费播放视频 | 最新av在线| 国产伦精一区二区三区 | 色视频免费在线 | 国产在线播放一区二区三区 | 亚洲理论片在线观看 | 中文字幕日韩精品一区二区 | 天天操天天添 | 亚洲欧美日韩另类 | 欧美性xxxxx极品少妇 | 欧美日韩一区不卡 | 黄网免费在线 | 中文在线字幕av | 欧美少妇诱惑 | 欧美三区在线视频 | 成年人免费看视频 | www.久久爱.com| 911视频完整版在线观看 | 国产蜜臀| 亚洲黄色一区二区三区 | 国产福利av | 黄漫网站在线观看 | 亚洲精品久久久久久久久久久久久 | 欧美日韩1 | 欧美日韩另类综合 | 五月天婷婷激情 | 特黄特色大片免费播放 | 电影午夜精品一区二区三区 | 国产美女在线精品 | a级黄色在线观看 | 在线成人国产 | 亚洲国产va精品久久久不卡综合 | 亚洲深深色噜噜狠狠爱网站 | 亚洲高清av在线 | 在线看片你懂 | 五十路六十路七十路熟婆 | 国产特级毛片 | 色婷婷在线观看视频 | 99国产在线观看 | 久久在线免费观看 | 免费在线观看h片 | 男人脱美女丝袜上下摸 | 欧美12--15处交性娇小 | 一本色道88久久加勒比精品 | 中文字幕在线视频观看 | 国产99视频精品免视看7 | 人妖和人妖互交性xxxx视频 | 成人av图片| 国产精品久久久久影院老司 | 亚洲在线免费视频 | 国产精品免费一区二区三区四区 | 成人写真福利网 | 青青草一区 | 99re视频在线| 日韩欧美在线观看 | 国产三级在线观看 | 精品一区在线 | 欧美 日韩 国产 一区 | 最近中文字幕在线视频1 | 沈樵精品国产成av片 | 密臀av在线播放 | 中文av在线播放 | 国产精品a级 | 亚洲一区不卡 | 国产精一精二 | 欧美a在线 | 日本高清视频www夜色资源 | 能看的毛片网站 | 久久色成人 | 欧美一区二区三区在线看 | 极品少妇xxxx精品少妇偷拍 | 国产成人亚洲综合a∨婷婷 日本伦理一区二区 | 捆绑调教在线观看 | 成人av一 | 国产日韩欧美视频在线 | 九色自拍 | 一本一道久久a久久精品 | 欧美视频导航 | 99爱在线观看 | 91在线播放国产 | 亚洲mv在线观看 | 欧美色图久久 | 未满18岁禁止进入的网站 | 久久国产热 | av不卡电影网站 | 一二三区在线视频 | 国产伊人精品在线 | 18美女的下面 | 日韩综合一区二区三区 | av性网| 欧美激情精品久久久久久大尺度 | 日本免费毛片 | 日韩视频三区 | 久草福利在线视频 | 中文字幕在线免费播放 | 五月婷婷开心 | 亚洲欧美色图 | 日韩精品四区 | 综合天堂av久久久久久久 | 午夜精品一区二区在线观看的 | 一边摸内裤一边吻胸 | av第一区| 成人网91| 成人黄色漫画 | 狠狠操网址 | 九九精品在线视频 | 一级黄色av | 国产在线拍偷自揄拍精品 | 亚洲精品9999 | 亚洲精品字幕 | 中国gay男脚贱奴vk | 91成人在线免费观看 | 亚洲国产精品成人综合色在线婷婷 | 欧美精品久久天天躁 | 超碰91久久| 九热视频在线观看 | eeuss鲁片一区二区三区在线观看 | 日韩女优在线播放 | 可以免费看av的网站 | 91视频在线 | 欧美午夜精品久久久 | 国产一区二区日韩 | av黄在线观看 | 日韩av电影在线播放 | 日本女人性视频 | 亚洲va韩国va欧美va精四季 | 亚洲一区 | 朝桐光在线视频 | 欧美一区二区三区免费看 | 欧美bbxxx | 欧美黄色大片网站 | 少妇影院在线观看 | 最新国产午夜 | 草莓视频在线观看网站 | 成人av高清在线 | 红桃视频成人 | 久久91精品国产 | 黄色亚洲精品 | 国产高清永久免费 | 久久99视频精品 | 日本视频免费看 | 2021国产精品视频 | 久久精品国产一区二区电影 | 91av视频在线播放 | 亚洲一二三四在线 | 亚洲精品v日韩精品 | 精品一区二区三区在线视频 | 色欲综合视频天天天 | av资源网站| 三上悠亚陪上司出差被要了在线 | 九色自拍网 | 久久久久成人精品免费播放动漫 | 99re8在线精品视频免费播放 | 91精品国产91久久久久青草 | 免费在线观看av网址 | 快活影院~永久入口 | 男生插女生视频在线观看 | 2023国产精品 | 久99久视频| 欧美精品不卡 | 正在播放国产一区 | 97精品国产97久久久久久久久久久久 | 国产在线播放一区二区三区 | 欧美 亚洲 视频 | 欧美精品自拍 | 第一色播 | 国产免费不卡 | 享受舌奴口舌视频vk | 日本一级黄 | 校花扒腿让我c视频 | 淫辱的世界(调教sm)by | 自拍成人在线 | 裸体丰满少妇做受久久99精品 | 日韩欧美一区二区视频 | av手机在线观看 | 欧美群妇大交群中文字幕 | 欧美在线播放 | 欧美日韩在线不卡 | 在线观看精品自拍私拍 | 国产久在线 | 国产超碰91 | 91网页在线观看 | av资源在线免费 | 性色av一区二区三区红粉影视 | 亚洲蜜臀av乱码久久精品蜜桃 | 亚洲精品中文在线观看 | 91禁外国网站 | 四虎最新网址在线观看 | 亚洲精品一区二区三区香蕉 | 国产美女精品在线观看 | 乱lun合集男男高h | 亚洲巨乳 | 色欧美88888久久久久久影院 | 天天射天天干天天操 | 91在线观看免费 | av大片在线播放 | 国产美女一区二区 | 欧美黄色成人网 | 日本h片在线 | 久久久亚洲天堂 | 视频在线网站 | 欧美日本在线看 | 99自拍视频 | 国产精品视频一区二区三区不卡 | 精品视频日韩 | 91精品视频在线 | 中文av网站| 狠狠干综合 | 国产在线h | 美女脱了裤子让男人桶 | 欧美成人国产va精品日本一级 | 一本一本久久a久久精品牛牛影视 | 美女又大又黄 | 天天操天天操天天 | 久在线观看视频 | 国产欧美一区二区在线观看 | 国产91毛片| 美国一级片网站 | 久久久久女教师免费一区 | 亚洲香蕉av在线一区二区三区 | 91视频 国产精品 | 丰满少妇大力进入 | 日韩精选视频 | 伊人久久高清 | 岛国av中文字幕 | 91av噜噜| www黄色免费 | 先锋av资源网 | 日韩激情视频在线 | 五月国产精品 | 草草影院第一页 | 西西人体大胆4444www | 青青草av免费在线观看 | 91久久青草| 91亚洲精品一区二区 | 正在播放 国产精品 | 女人扒开屁股让我添 | 久久精品中文字幕一区 | 激情综合区 | 免费无遮挡网站 | av亚洲产国偷v产偷v自拍 | 国产伦精品一区二区三区视频免费 | 精品久久久在线观看 | 成人一级视频在线观看 | 一区在线播放 | av网站播放 | 色免费在线观看 | 黄色网免费在线观看 | 国产传媒在线播放 | 亚洲综合视频网 | 性欧美极品另类 | 91精品综合久久久久久五月天 | 91精品久久久久久综合五月天 | 国产伦理一区二区 | 国产成人免费在线视频 | 国产精品美乳在线观看 | 色奇米| 美女福利免费视频 | 91白丝jk| 欧美1区2区3区4区 | 91精品国产自产在线 | 福利在线视频导航 | 国产精品videossex久久发布 | 隔壁老王av | 91av欧美 | 日韩三级不卡 | 亚洲精品1区 | 欲书屋| 亚洲网色| 视频一区 日韩 | 亚洲香蕉成人av网站在线观看 | 2019中文在线观看免费高清 | 97视频在线观看免费 | 久久成人麻豆午夜电影 | 都市激情 亚洲 | 欧美特黄一级 | 日韩成人在线观看视频 | 中文字幕一级 | 国产午夜激情 | 国产成人在线免费观看 | 日韩高清一区二区 | 成人一二三区 | 欧美日韩一区二区免费在线观看 | 极品魔鬼身材女神啪啪96 | 欧美日韩国产在线 | av三级网站 | 正在播放 国产精品 | 九九热99久久久国产盗摄 | 国产一区二区三区 在线 | 欧美一区二区在线看 | 丝袜淫脚 | 国产精品欧美一区二区 | 性疯狂做受xxxx高清视频 | 老汉色av| 97超碰欧美中文字幕 | 精品久久一区二区三区 | 国产精品入口66mio女同 | 性欧美精品高清 | 亚洲人成精品久久久久 | 韩国19主播内部福利vip | 欧美高清在线播放 | 少妇精品视频一区二区免费看 | 欧美国产精品日韩 | 亚洲乱码国产乱码精品精98午夜 | 日韩av高清在线播放 | 中文字幕在线视频第一页 | 西西人体做爰大胆gogo直播 | 成人在线免费观看av | 欧美理伦片在线播放 | 视频一区视频二区在线观看 | 中文字幕一区二区三区在线观看 | 特级西西444www大胆免费看 | 奇米四色网| 91亚洲精品乱码久久久久久蜜桃 | 久久视频这里只有精品 | 91久久夜色精品国产网站 | av不卡在线播放 | 91啪在线| 欧美大肥婆大肥bbbbb | 又紧又大又爽精品一区二区 | 久久久视频在线 | 国产精品久久777777 | 大黑人交xxxxxhd性爽 | 绿帽视频 | 国产伦精品一区 | av大片在线播放 | 在线成人av电影 | 精品九色 | 日韩电影网站 | 成年人视频在线观看视频 | 久久久久久久久久久国产 | 羞羞涩| 亚洲午夜一区 | 香港黄色网址 | 国产精品一区电影 | 亚洲综合五月 | 国色天香一区二区 | 三级av在线免费观看 | 日日爱夜夜爱 | 色97在线| 69中文字幕 | 黄网站免费进入 | 人人射人人爽 | 亚洲成人一二三 | 欧美日韩一区高清 | 裸体女人免费视频 | 中文字幕免费高清电影在线观看 | 日韩av官网 | 欧美肥婆姓交大片 | 亚洲高清不卡在线观看 | 91亚洲免费| 久久久久久久一 | 国产精品久久久久一区二区三区 | 欧美日本一区二区在线观看 | 自拍黄色| 日韩精品中文字幕一区二区 | 色哟哟视频网站 | 久久免费电影 | 亚洲人高潮女人毛茸茸 | 迈开腿让我尝尝你的小草莓 | 成人黄色91| 女优一区二区三区 | 国产精品久在线观看 | 欧美18一19性内谢 | 性欧美大战久久久久久久免费观看 | 伦理高压监狱 | 99久久伊人 | 亚洲激情在线观看 | 男生操女生在线观看 | 久久国产精品99精品国产 | 天堂网在线最新版www中文网 | 精品96久久久久久中文字幕无 | 美女视频黄免费网站 | 在线日韩网站 | 色婷婷色 | 第一福利视频导航 | 精品视频网站 | 狂野少女电影在线观看国语版免费 | 国产一区二区三区四区五区美女 | 欧美在线观看视频一区二区三区 | 亚洲啊v在线 | 久久久久亚洲av毛片大全 | 成人免费电影视频 | 欧美另类孕交 | 国产男女无遮挡猛进猛出 | 成 人色 网 站 欧美大片在线观看 | 性欧美xxxx16少妇 | 99成人在线观看 | 美女av在线免费观看 | 在线视频 亚洲一区 | 男生女生插插插 | 海角社区深夜入口 | 亚洲精品久久区二区三区蜜桃臀 | 亚洲区国产区 | 婷婷亚洲五月 | 91嫩草国产在线观看 | 2025中文字幕 | 成人黄色网址在线观看 | 欧美午夜久久 | 成人在线精品 | 九九亚洲视频 | 色网站在线免费 | 日韩伦理中文字幕 | 一区二区三区不卡在线观看 | 大奶av | 色妞色视频一区二区三区四区 | 亚洲国产区 | 欧美成人自拍 | 亚洲国产精品电影在线观看 | 日韩精品中文字幕在线观看 | 国产精品久久久久av | 少妇影院在线观看 | 国产美女白浆 | 男女啪动最猛动态图 | 香蕉久久av一区二区三区 | 一女被多男玩喷潮3p免费视频 | 午夜免费福利小电影 | 日韩毛片在线免费观看 | 影音先锋啪啪资源 | 亚洲伦理视频 | 91丨九色丨蝌蚪丨老版 | 红桃视频一区二区三区免费 | 亚洲精品视频免费在线观看 | 日韩电影中文字幕 | 亚洲一区二区精品在线 | 精品亚洲一区二区 | 欧美视频福利 | 女人高潮娇喘声mp3 午夜在线你懂的 | 黑名单上的人高清国语版免费 | 国产98视频在线观看 | 人人综合网| 西野翔中文久久精品字幕 | 91成人福利在线 | 欧美在线资源 | 肉视频在线观看 | 97成人资源| 亚洲欧美在线看 | 亚洲影音av | 91重口味| 一级福利视频 | 国产欧美日韩不卡 | 欧美日韩亚洲一区二区 | 日本电影大尺度免费观看 | 91看片网页版 | av漫画在线观看 | 精品国产精品网麻豆系列 | 婷婷久久五月天 | 男人都懂的网址 | 黄色av电影 | 欧美日韩不卡视频 | 强乱中文字幕在线 | 猛男大粗猛爽h男人味 | 老司机精品视频网站 | 先锋资源一区二区 | 猫咪av成人永久网站在线观看 | 日韩欧美一区二区免费 | 免费在线观看日韩av | 女仆m开腿sm调教室 中文字幕在线影院 | 免费国产又色又爽又黄的网站 | 丰满少妇大力进入 | 久久99久久99精品免视看婷婷 | 一级二级在线观看 | 国内精品久久久久影院薰衣草 | 中国老头性行为xxxx | 欧美极品少妇xxxxx | 黄页网址在线观看 | 日本韩国欧美国产 | 亚洲成人黄色小说 | 亚洲欧美久久 | 天天亚洲| 时间停止在线 | 91精品国产一区二区三区香蕉 | 毛片激情视频 | 国产一区二三区 | 国产麻豆一区二区三区在线观看 | 天天综合色天天 | 北条麻妃av电影在线观看 | 欧美日韩在线免费视频 | av亚洲产国偷v产偷v自拍 | 综合色区| 亚洲图色视频 | 免费成年视频 | 国产欧美网站 | 五月天婷婷在线播放 | 足交在线观看 | 七仙女欲春2一级裸体片 | 日韩欧美在线一区二区 | 午夜宅男av | 国产喷水视频 | 91av电影网站 | 国产美女视频网站 | 91在线观看免费视频 | 扒下小娇妻的内裤打屁股 | 欧美日韩一区二区三区免费 | 久久国产精品久久久 | 国产免费一区 | 91免费国产在线观看 | 欧美日韩国产亚洲一区 | 久久久久久久性 | 国际av在线 | 综合网在线 | 永久免费在线观看视频 | 亚洲乱码一区二区三区在线观看 | 91gav在线视频 | 高潮毛片无遮挡 | 久久一日本道色综合久久 | 本田岬av在线| 日韩av高清在线播放 | 91国产在线精品 | 国产精品主播视频 | 求个黄色网址 | 福利所第一导航 | a级黄色在线观看 | 国产美女作爱全过程免费视频 | 欧美在线性视频 | 1024视频在线 | 久久久受www免费人成 | 足交在线观看 | 亚洲综合日韩在线 | 亚洲一区二区日本 | yy6080理aa级伦大片一级 | 亚洲三级在线观看 | 蜜桃精品一区二区三区 | 嫩草社区| 韩国v欧美v亚洲v日本v | 老师张开让我了一夜av | 国产色av| 日韩欧美亚洲国产精品字幕久久久 | 成人精品二区 | 欧美激情第6页 | 六月色婷婷 | 欧美亚洲一区二区在线 | 国产精品第3页 | 西西人体高清44rt·net | 国产精品午夜在线观看 | 亚洲精品一区在线 | 亚洲成人精品视频在线观看 | 日本中文字幕一区二区 | 精品婷婷色一区二区三区蜜桃 | 青娱乐国产 | 国产精品任我爽爆在线播放, | 欧美久久一区二区三区 | 激情校园亚洲 | 亚洲精品中文在线 | 成年人看的黄色 | 色狠狠久久av五月综合 | 疯狂憋尿自拍失禁网站 | 经典三级视频 | 这里是久久伊人 | 国产亚洲成av人片在线观看桃 | 亚洲一区二区精品视频 | 欧美激情亚洲 | 麻豆精品一区 | 色哟哟入口国产精品 | 国产精品国产三级国产专播精品人 | 中国zzji女人高潮免费 | 青青视频网 | 国产超碰在线 | 六月婷婷色综合 | 日韩成人激情在线 | 国产91精品视频在线观看 | 国产成人综合在线观看 | 中文av网站 | 91在线一区二区三区 | 4438xx亚洲最大五色丁香一 | 精品午夜一区二区 | 亚洲视频 欧美视频 | 久久91精品国产91久久小草 | 日本韩国欧美国产 | 久久精品欧美一区二区三区不卡 | 精品视频久久 | 欧美激情久久久久久 | 日韩久久在线 | 国产精品国产三级国产aⅴ中文 | 国产精品电影网 | 国产一区在线观看视频 | 成人免费视频观看 | 国产婷婷色 | 欧美激情精品久久久久久大尺度 | 夜夜操网 | 国产激情图区 | 婷婷综合| 91美女视频网站 | 在线观看精品 | 伊人网站 | 一区二区精品在线 | 亚洲国产精品一区 | 欧美成人影音 | 色www永久免费视频首页在线 | 亚洲视频一二区 | 色猫咪av| 91精品二区| 国产精品免费一区二区三区在线观看 | 亚洲sss视频 | 国产91精品一区二区绿帽 | 清冷学长被爆c躁到高潮失禁 | swag国产精品一区二区 | 亚洲在线观看免费视频 | 久久99精品久久久久久动态图 | 在线观看中文字幕不卡 | 中国免费观看的视频 | 久久av免费 | 欧洲亚洲一区二区三区四区五区 | 性网站在线播放 | 日本三级韩国三级欧美三级 | 91精品福利 | 最近中文字幕mv免费高清在线 | 久久青草视频 | 丝袜无内写真福利视频 | 蜜桃视频在线观看一区二区 | 亚洲免费人成在线视频观看 | 禁漫天堂免费网站 | 国产蜜臀97一区二区三区 | 久av在线 | 国产福利小视频 | 精品美女一区 | 国产精品黄色 | 国产欧美久久一区二区 | av片在线免费观看 | 亚州综合一区 | 午夜小视频在线观看 | 在线视频 你懂得 | 国产高清在线 | 日韩av在线一区 | 国产成人99久久亚洲综合精品 | 久久婷婷影院 | 日韩av天天 | av不卡免费在线观看 | 999视频 | 日韩av高清在线播放 | 91成人免费看 | 欧美在线综合 | 国产精品麻豆欧美日韩ww | 午夜精品一区二区三区免费视频 | 国产一区二区高清不卡 | 最新av电影在线观看 | 天堂中文av在线 | 男生和女生靠逼视频 | 黄色永久免费网站 | 一级a性色生活片久久毛片 欧美xxxx黑人又粗又长密月 | 好吊视频一区二区三区四区 | 海角国产精品 | 人人射人人干 | 操碰97| 国产一区二区福利视频 | 欧美性大战久久久久久久 | 国产精品久久久久久妇女6080 | 日韩免费视频线观看 | 99精品福利视频 | 国产伦精品一区二区三区精品视频 | 日韩av电影免费观看高清完整版在线观看 | 中文字幕av一区二区 | 日本成人在线不卡 | 在线免费观看日本视频 | 国产精品1区 | 天天干天天拍 | 在线色视频网站 | 日本不卡高清视频 | 91看片网站 | 老司机精品视频导航 | 日韩av官网 | 天天av色 | 成人精品福利视频 | 色丁香在线 | 91免费在线观看网站 | 91视频在线观看 | 精品国产乱码久久久久久108 | 一区二区三区四区欧美日韩 | 亚洲国语精品 | 亚洲欧美中文日韩在线 | 歪歪视频在线观看 | 在线黄色av网站 | ,亚洲人成毛片在线播放 | 精品久久天堂 | 一二三四精品 | 成人免费观看视频 | 久久国产精品一区二区 | 中文久久 | 泽村玲子在线 | 国产69精品久久久久按摩 | 国产精品免费观看高清 | 91麻豆产精品久久久久久 | 欧美成人亚洲成人 | 色资源在线播放 | 亚洲综合在线观看视频 | 自拍视频二区 | 成人免费高清视频 | 黑人操日本女优 | 色人在线 | 欧美色视频一区 | 琪琪电影一区二区 | 欧美激情精品久久久久久大尺度 | 久久福利视频一区二区 | 亚洲性生活视频 | 成年人视频网址 | 亚洲在线一区二区三区 | 成年人免费看片 | 美女视频福利网站 | 在线香蕉| 一区二区中文视频 | 欧美极品在线视频 | 欧美夫妻性生活视频 | 国产黄大片在线观看 | 国产精品一区二区三区免费观看 | 亚洲综合第一页 | 中国人妖和人妖做爰 | 人人看人人爽 | 办公室大战高跟丝袜秘书经理ol | 91久久精品一区二区三区 | 天堂а√在线资源在线 | 久久一区中文字幕 | 黄色av免费观看 | 国产精品电影院 | 91亚洲欧美 | 影音先锋一区 | 亚洲人成影视 | h片视频在线观看 | 亚洲高清不卡在线观看 | 国产在线看片 | 欧美日韩国产片 | 黄网站在线播放 | 日本护士多人吞精囗交视频 | 中文字幕日韩欧美在线 | 欧美大片下载 | 色噜噜av | 欧美日韩在线观看一区二区 | 二区三区中文字幕 | 中国老师69xxxx高清hd | 欧美一区二区三区在线观看 | 国产精一区二区三区 | 亚洲日本japanese丝袜 | 久久av一区 | 天堂va在线 | av天天操 | av网免费 | 国产精品一区二区在线看 | 粉色视频试看 | 国产黄色一级大片 | 亚洲无吗在线 | 国产91精品久久久 | 日韩一区二区三区在线 | 美日韩丰满少妇在线观看 | 四虎国产精品永久在线国在线 | 男人和女人做爽爽视频 | 免费成人在线网站 | 国产香蕉久久精品综合网 | 色就操 | 亚洲在线网站 | 国产一区二区高清不卡 | 欧美第三页 | 波多野在线观看 | 久草免费资源 | 国产视频手机在线 | 在线成人 | 你懂得在线网站 | 制服丝袜三级 | 在线观看a视频 | 国产 欧美 日韩 | 国产精品嫩草久久久久 | 亚洲伊人网站 | 国产区免费观看 | 免费在线观看的黄色 | 自拍日韩欧美 | 吃瓜网今日吃瓜 热门大瓜 伊人久久色 | 国内自拍视频一区二区三区 | 成人黄色大全 | 被警察猛c猛男男男 | 日韩成人在线网站 | 欧美精品与人动性物交免费看 | 日韩中文字幕亚洲 | 午夜天堂av | 国产精品久久色 | 国产区精品| 亚洲第一天堂av | 日韩 欧美 在线观看 | 91色呦呦| 亚洲男人的天堂av | 香蕉九九九 | 亚洲天堂男人天堂 | 中文字幕在线播放第一页 | 上海女子图鉴免费观看剧的完整版 | 欧美一级专区免费大片 | 丁香色av| 91黄站 | 国产精品7 | 夜夜嗨影院 | 国产精品天天看 | 成人性色生活片 | 色九区| 黄黄视频免费观看 | sm调教视频vk| 久久99精品视频 | 国产香蕉久久 | 精品一区精品二区 | 国产视频在线观看一区二区三区 | 国产一区二区三区视频免费 | 永久免费看mv网站入口亚洲 | 茄子视频在线看 | 人人澡人人透人人爽 | 国产视频2021 | 性色视频 | 白丝jk制服超短裙无内 | 香蕉文化书免费阅读在线阅读 | 永久免费av片在线观看全网站 | 国产福利视频一区二区三区 | 国产精品99久 | 中文福利在线 | 最新色综合 | 国产麻豆视频一区 | 精品中文视频 | 日本怡春院 | 中文字幕在线观看视频网站 | 色哟哟国产精品 | 欧美精品一区二区三 | 奇米四色中文字幕 | 不卡在线 | 久久久精品影院 | 三男一女吃奶添下面 | 高清在线一区二区 | free性丰满69性欧美hd | 懂色a v | 国产精品videossex撒尿 | 在线播放91 | 黄色自拍视频 | 国产成人精品综合 | 欧美一级大胆视频 | 日本欧美精品在线 | 午夜影院在线免费观看 | 成人片网址 | 男女洗澡互摸私密部位视频 | 欧美a网 | 国产在线更新 | 男女高潮又爽又黄又无遮挡 | 99久久九九| 成人在线观看a | 中文字幕3| 怡红院精品视频 | 中国美女屁股眼交3 | 欧美精品国产一区 | 成人一区二区在线观看 | 国产va在线 | 天天婷婷 | 一本大道av | 婷婷综合另类小说色区 | 国产999精品视频 | 精品国产免费人成在线观看 | 法国复古freesex精品32 | 影音先锋素人 | 欧美日韩国产综合一区二区 | 欧美成人自拍视频 | 亚洲高清不卡 | 国产成人在线免费 | 免费黄网入口 | 黄页免费观看 | 日日躁夜夜躁aaaabbbb | 黄色大全网站 | 绿帽女王羞辱丨vk | 国产一区在线播放 | 亚洲综合影院 | 成人日韩欧美 | 亚洲成人一二三 | 91色偷偷 | 久久五月激情 | 国产99网 | 自拍偷拍网址 | 天天淫| 久久疯狂做爰流白浆xx | 精品国产污污免费网站入口 | 91精品久久久久久 | 日韩毛片在线 | 亚洲播放在线 | 一区二区三区av在线 | 中文字幕成人 | 复古经典毛茸茸xxxxxxxx | 欧美国产专区 | 欧美专区18| 成年网站在线观看 | 91精品啪在线观看国产60岁 | 在线观看黄色小视频 | 国内成人综合 | 欧美一区二三区 | 私人成片免费观看 | 亚洲另类色综合网站 | 久久成网| 午夜激情婷婷 | 中文字幕在线影院 | 欧美三区在线视频 | 国产精品高潮呻吟久久av野狼 | 91成人综合 | 毛片网站大全 | 特黄特黄的视频 | 亚洲国产一区二区三区a毛片 | 在线观看免费小视频 | 亚洲素人在线 | 欧美日本韩国一区二区三区 | 中国freexxxx性hd国产 | 国产精品国产精品国产专区蜜臀ah | 四虎国产成人永久精品免费 | 国产精品对白刺激 | 欧美中文字幕在线播放 | 在线国产一级 | 中文幕无线码天堂 | 欧美在线日韩在线 | 国内黄色av | 亚洲精品五月天 | 老司机午夜精品视频 | av麻豆国产 | 中文字幕avav | 黄色小视频网页 | 中文字幕在线观看一区二区三区 | avhd101老司机| 在线看免费av | av免费网站观看 | 色综合久久久 | 精东传媒在线观看 | 女人的天堂av | 伊人久久久久久久久久久 | 精品视频一区二区三区免费 | 免费瑟瑟视频 | 18岁免费观看电视连续剧 | 国产精品一二三四五 | 污黄网站在线观看 | 久久一区二区三区中文字幕 | 日韩一卡二卡三卡 | 高跟肉丝丝袜呻吟啪啪网站av | 丝袜制服亚洲色图 | 99国产高清| 99热播| 欧美视频一二三 | 欧美涩涩网站 | 日本福利一区二区 | 日韩区在线观看 | 中文字幕在线免费 | 夜夜嗨av | 最好看的日本字幕mv视频大全 | 大地在线播放免费 | 亚洲精品视 | 美女全黄视频 | 久久久久久久久久电影 | 国产一区国产二区国产三区 | 日韩高清不卡一区 | 色老汉视频 | 黄色网址视频在线观看 | h视频免费在线观看 | 黄色性视频网站 | 在线观看国产一区二区 | av播播| 美女露出让男生揉的视频 | 久久国产精品精品国产色婷婷 | 成人精品国产免费网站 | 免费在线观看小视频 | 日本欧美一区 | 女人裸体免费网站 | 成人精品一区二区三区四区 | 国产高清自拍 | 免费日本a级片 | 一区二区中文视频 | 精品国产91久久久久久久妲己 | 亚洲精品高清视频在线观看 | 日本中文字幕在线电影 | 亚洲天堂av综合网 | 最近中文在线观看 | 欧洲视频在线免费观看 | 午夜在线精品 | 亚洲精品中文在线 | 国产永久免费高清动作片www | 美女草逼视频 | 国产精品免费一区二区三区 | 天天撸在线视频 | 香蕉视频网站在线观看 | 免费黄色av网址 | 亚洲成人免费在线 | 五月婷婷中文 | 操日本老妇 | 九九视频在线观看视频6 | 亚洲 一区 自拍 | 98成人网 | 亚洲欧美日韩网 | 日本成人手机在线 | 一本大道久久a久久精二百 色哟哟黄色 | 精品国产乱码久久久久久1区2区 | 欧美一级高清免费播放 | 国产一区免费在线 | 亚洲v欧美 | 精品丝袜一区 | 宅男天堂av | av在线高清观看 | 爱豆国产剧免费观看大全剧苏畅 | 欧美最顶级a∨艳星 | 日韩av一级| 成人国产一区二区 | 男人操女人下面 | 亚洲巨乳 | 欧美妇人zzzzo00xxxx | 成品短视频泡芙 | 午夜精品久久久久久久星辰影院 | 午夜写真片福利电影网 | 久草免费福利 | 91在线色 | 国产性av | 久久精品国产一区 | 国产美女在线直播 | 欧美激情一区二区三区不卡 | 国产精品美女久久久浪潮软件 | 亚洲毛茸茸少妇高潮呻吟 | 精品美女一区二区 | 精品久久久中文 | 亚洲成人自拍偷拍 | 欧美成人国产 | 爽爽乳人网 | 一区二区三区欧美在线观看 | 合欢视频在线观看 | 亚洲一区二区欧美日韩 | 亚洲午夜精品一区,二区,三区 | 中文字幕亚洲无线码在线一区 | 午夜精品一区二区在线观看 | 亚洲 欧美 日韩在线 | 色播一区| 日本wwwxxx免费 | 97爱视频 | 你懂得影院| 日本高清不卡视频 | 国产v综合v亚洲欧美久久 | 一区二区在线视频 | 男女黄床上色视频免费的软件 | 91精品国产色综合久久不卡98口 | 亚洲一区二区不卡视频 | 亚洲污视频 | 麻豆精品av| 精品国产一区二区三区久久久 | 欧美国产综合视频 | 成人春色激情网 | 欧美一区久久 | 国产原创av在线 | 福利精品在线 | 成人爽a毛片一区二区免费 日本久久精品视频 | 亚洲免费在线看 | 99久久久国产精品免费蜜臀 | 校园sm主奴调教1v1罚视频 | 国产精品情侣自拍 | 欧美精品一二 | 五月天 婷 | 欧美午夜一区二区福利视频 | 麻豆视频二区 | 国产午夜精品一区二区三区欧美 | 特黄特色大片免费 | 希岛爱理一区二区三区 | av在线免费网址 | 在线播放中文 | 成人在线18 | 精品一区二区三区三区 | 蜜桃在线一区二区三区精品 | 欧美丝袜一区二区三区 | 亚洲影视在线播放 | 91福利视频网 | 国产成人精品一区二区 | 500部大龄熟乱视频 六十路息与子猛烈交尾 | 打屁股18 | 韩国三色电费2024免费吗多少钱 | 国产成人久久久 | 日本一区二区视频在线观看 | 97操视频 | 成人欧美一区二区三区黑人 | 色视频在线免费 | 午夜亚洲福利在线老司机 | 中文有码久久 | 日韩欧美在线视频 | 欧美三级理论 | 国语对白精品一区二区 | 黑名单上的人全集免费观看 | 亚洲国产欧美一区 | 黄色小网站在线免费观看 | 国产真实乱对白精彩 | 精品国产亚洲一区二区三区 | 西西人体一区二区 | 国产综合在线视频 | 日本少妇毛茸茸 | 免费不卡av | 国产成人超碰人人澡人人澡 | 欧美日韩精品三区 | 濑户奈奈子 | 爱豆国产剧免费观看大全剧苏畅 | 国产成人一区二区三区 | 亚洲一区有码 | 日韩国产在线观看一区 | 免费的黄色网址 | 动漫黄在线观看 | 免费看小视频 | 国产精品9999久久久久仙踪林 | 麻豆视频在线观看 | 91黄色免费看 | 欧美1区2区3 | 男的肌肌桶女的肌肌 | 女生被男生桶 | 亚洲精品一二三 | 樱桃av | 亚洲激情一区 | 蜜桃做爰免费网站 | 国产一级网 | 日韩精品第1页 | 欧美黑吊大战白妞欧美大片 | 久久国产一区 | 亚洲第一页中文字幕 | 午夜久久福利 | 日韩一区三区 | 欧美激情精品久久久久久蜜臀 | 国产一区伦理 | 中文字幕制服丝袜一区二区三区 | 国产在线1区| 国产福利在线免费 | 夜夜高潮夜夜爽夜夜爱爱 | 国产免费片 | 九九精品视频在线 | 自拍偷自拍亚洲精品被多人伦好爽 | 男人尿裤子视频 | 国产欧美在线看 | 欧美性猛交xxxx | 法国空姐在线观看视频 | 精品视频在线一区二区 | 亚洲一二三四区 | 欧美人妖ⅹxxx极品另类 | 亚洲一区二区三区自拍 | 十七岁日本版 | 色呦呦国产精品 | 99re国产精品 | 羞羞导航 | 亚洲一区有码 | 久久久91 | 欧洲视频在线免费观看 | 欧美色视频在线 | 九九色在线播放 | 午夜精品福利在线观看 | 欧美视频在线免费看 | 午夜网站在线观看 | 亚洲九九精品 | 欧美综合色免费 | 黄色小网站入口 | 92看片淫黄大片看国产片 | 日本久久一区二区三区 | 五月在线视频 | 亚洲精品在线不卡 | 视频在线看 | 日韩在线激情 | 国产精品久久99 | 水多多av | 高清成人在线观看 | 欧美激情偷拍 | 四虎影视国产精品 | 91精品国产91久久久久青草 | 四虎成人在线视频 | 第一宅男av导航入口 | 精品孕妇一区二区三区 | 国产精品揄拍一区二区 | 中文在线一区二区 | 欧美人在线 | 久久久久久久影视 | 午夜欧美一区二区三区免费观看 | 男男全肉变态重口高h | 美女露尿口网站 | 激情男女视频 | 日韩二三区 | 日韩欧美亚洲综合 | 国精产品一区一区三区有限公司杨 | 成人免费三级电影 | 日韩欧美国产二区 | 3d黄色动漫在线观看 | 亚洲在看 | 亚洲国产日韩精品在线 | 国产午夜精品一区二区三区四区 | 性xxxx欧美老肥妇牲乱 | 另类欧美尿交 | 亚欧洲视频在线观看 | 俺也去五月天 | 日本一区二区三区免费看 | 日韩精品黄 | 337p亚洲精品色噜噜噜 | 日韩在线中文 | 国产美女av | 黄色av免费下载 | 一区二区在线观看视频 | 人妖3d动漫xxxx巨大 | 亚洲 一区 自拍 | 久久超级碰碰 | 中文字幕在线免费 | 青青草手机视频 | 中文字幕在线观看免费视频 | 中文在线免费视频 | 捷克少妇xxxx做受hd | 日韩中文字幕免费视频 | 成人动漫网站在线观看 | 久久视频在线 | 综合久久综合久久 | 国产不卡av在线免费观看 | 全国免费av | 精品久久久久久久久久久院品网 | 黑人操中国女人视频 | 特级毛片在线观看 | 国产另类xxxxhd高清 | 蜜桃视频在线观看网站 | 性自由色xxxx免费视频 | 亚洲高清免费观看高清完整版 | 男生操女生动漫 | 日批在线观看 | 亚洲在线黄色 | 日韩精品在线第一页 | 色狠狠婷婷 | 成人国产电影在线观看 | 黄色高清免费 | 欧美日韩亚洲激情 | 午夜噜噜噜 | 久久丝袜美腿 | 黄色国产视频 | 一级视频在线播放 | 91污在线观看 | 亚洲综合在线播放 | 亚洲综合色视频 | 国产尤物在线观看 | 国产精品对白刺激 | 少妇精品| 欧美性tv | 久久久久久精 | 青草视频免费在线观看 | 国产精品夫妻 | 美女a区| 一本在线 | 女性向小h片资源在线观看 成人欧美日韩 | 97视频在线观看免费高清完整版在线观看 | 176精品二区| 在线a视频 | 亚洲精品mv| 都市激情自拍偷拍 | 波多野结衣三区 | 偷拍视频一区二区三区 | 极品国产美女玉足脚交 | juliaann第一次和老师 | 日韩一级二级 | 午夜影院久久久 | 欧美12--15处交性娇小 | 久久免费99精品久久久久久 | 中文字幕男人天堂 | 欧美亚洲一级 | 亚洲六月丁香色婷婷综合久久 | 亚洲一区不卡 | 美女调教视频 | 国产精品啊啊啊 | 亚洲91在线 | 美女91在线| 激情小说视频 | 国产原创一区二区 | 国产专区一区二区三区 | 欧美激情在线免费 | 亚洲视频第一页 | 国产多p混交群体交乱 | 久久蜜桃av一区二区天堂 | 人操人在线视频 | 波多野结衣 一区 | 欧美一级爽aaaaa大片 | 国产视频99 | 欧美精品自拍偷拍 | 大尺度床戏无遮挡 | 高h调教冰块play男男双性文 | 中文字幕高清在线免费播放 | 国产日韩欧美在线一区 | 91麻豆精品国产91久久久久久久久 | 爽爽网站| 一二三区精品 | 日本 奴役 捆绑 受虐狂xxxx | 激情久久婷婷 | 色免费视频 | 欧美专区视频 | 免费的情网站www下载 | 香蕉视频网站 | 国产手机在线观看 | 黑森林福利视频导航 | 国产成人精品免高潮费视频 | 欧美不卡123 | 美女又爽又黄视频毛茸茸 | 一区二区三区高清在线观看 | 美女被男人c | 校草调教喷水沦为肉奴高h视频 | av大片在线观看 | 人人澡人人爱 | 日韩视频在线观看免费 | 色综合中文 | 亚洲校园激情 | 黄色成人91 |