亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Javascript代碼實現仿實例化類

2019-11-20 12:46:55
字體:
來源:轉載
供稿:網友

Javascript能做的事情越發的多了起來,隨之而來的問題即是Js代碼量的增加,面對代碼的加多,我選擇了仿面向對像類實例化里的構造函數自動啟動的方式,把所有的js代碼,以注冊的形式,類化了起來。

代碼

/** * @version $Id$ * @author xjiujiu <xjiujiu@foxmail.com> * @description HHJsLib Framework Apps * @copyright Copyright (c) 2011-2012 http://www.xjiujiu.com.All right reserved */ HHJsLib.register({  init: function() {    this.bindPreviewBtn();    this.bindUploadEleImageBtn();    this.bindUploadEleAudioBtn('a.audio-upload-btn');    this.bindUploadEleVideoBtn('a.video-upload-btn');    this.bindDownloadEleAudioBtn();    this.bindNewConBtn();    this.bindDelConBtn('a.btn-del-con');    this.bindDelItemBtn('a.btn-del-item');    this.bindNewItemBoxClose('div.item-box');    this.bindPlusBtn('a.btn-plus');    this.bindAppendNewElement('div.new-item-box ul li a');    this.bindSetPreviewVideo();    this.bindAddAnswerBtn('a.btn-add-answer');    this.bindDelAnswerBtn('a.btn-del-answer');    this.bindDelImageBtn('a.btn-del-image');    this.bindDelAudioBtn('a.btn-del-audio');    this.initPlusBtn();  },  bindUploadEleVideoBtn: function(dom) {    var self    = this;    $(dom).click(function() {      var $this  = $(this);      var t    = HHJsLib.modal.confirm(        '上傳本地視頻',        '<div class="text-center">'        + ' <p>瀏覽您電腦里,從中選擇一個視頻文件。</p>'        + ' <div class="btn-box btn btn-blue">'        + ' <div id="upload-btn">從電腦上傳</div>'        + ' </div>'        + ' </div>'      );      var uploader  = HJZUploader.createVideo(        '#upload-btn',         {           formData: {model: 'timeline'},        },        function(response) {          if(false == response.rs) {            self.setDemoBoxInit($this);            return HHJsLib.warn(response.message);          }          self.setDemoAudioInfo($this, response.data);          $('#dialog-box-' + t).modal('hide');        }      );      uploader.on('uploadProgress', function(file) {        self.setDemoBoxLoading($this);      });       return uploader;    });  },  bindDelAudioBtn: function(dom) {    this.bindDelFileBtn(dom, '真的要刪除這個音頻嗎?');  },  bindDelImageBtn: function(dom) {    this.bindDelFileBtn(dom, '真的要刪除這個圖片嗎?');  },  bindDelFileBtn: function(dom, msg) {    var self  = this;    $(dom).click(function() {      var $target   = $(this);      var t      = HHJsLib.initPopover($(this), msg);      $('#btn-sure-' + t).click(function() {        if(1 != $target.attr('data-new')) {          $.get(            queryUrl + 'timelineele/adel',            {id: $target.attr('data-id')},            function(response) {              if(false === response.rs) {                return HHJsLib.warn(response.message);              }              self.delDemoFieldInfo($target);              $target.popover('destroy');            }          );          return;        }        self.delDemoFieldInfo($target);        $target.popover('destroy');      });    });  },  delDemoFieldInfo: function($target) {    $($target.attr('data-demo-box')).html('');    $($target.attr('data-box')).removeClass('uploaded').addClass('no-file');    $($target.attr('data-field')).attr('data-id', '').attr('data-src', '');  },  bindAddAnswerBtn: function(dom) {    var self  = this;    $(dom).click(function() {      var id     = $(this).attr('data-id');      var answerHtml = eleTplMap.answerTpl.replace(/{id}/g, id);      $('#answer-box-' + id).append(answerHtml);      self.bindDelAnswerBtn('#answer-box-' + id + ' a.btn-del-answer');    });  },  bindDelAnswerBtn: function(dom) {    var self  = this;    $(dom).click(function() {      var $target = $(this);      if(2 > $target.parent().parent().find('textarea.answer-editor').length) {        return HHJsLib.warn('至少需要有一個答案!');      }      var t    = HHJsLib.initPopover($target, '您確定要刪除這個答案嗎?');      $('#btn-sure-' + t).click(function() {        $target.parent().remove();      });    });  },  bindAppendNewElement: function(dom) {    var self    = this;    $(dom).unbind('click').click(function() {      var type  = $(this).attr('data-type');      var heading   = $(this).parent().parent().attr('data-heading-id');      if('heading' == type) {        self.addNewElePartBox();        $("#new-item-box-" + heading).hide();        return;      }      self.addNewEleToPartBox(heading, type);    });  },  addNewElePartBox: function() {    var t      = this.getTimestamp();    var partBoxHtml = eleTplMap.partBox.replace(/{t}/g, t);    var headingHtml = this.initItemTplByType('heading', t, t);    var itemHtml  = this.initItemTplByType('text', t, t);    var itemBoxHtml = this.initItemBoxTpl(itemHtml, t, t, 'left', 'text');    partBoxHtml   = partBoxHtml.replace(/{heading}/g, headingHtml);    partBoxHtml   = partBoxHtml.replace(/{item}/g, itemBoxHtml);    $("#main-box").append(partBoxHtml);    this.bindDelItemBtn('#item-' + t + ' a.btn-del-item');    this.movePlusBtnBox(t);  },  addNewEleToPartBox: function(heading, type) {    var total    = $('#ele-part-box-' + heading + ' div.item-ele-box').length;    var side    = total % 2 === 0 ? 'left' : 'right';    var t      = this.getTimestamp();    var itemHtml  = this.initItemTplByType(type, t, heading);    var itemBoxHtml = this.initItemBoxTpl(itemHtml, heading, t, side, type);    //清掉原有高度DIV    $('#clearfix-' + heading).remove();    $('#ele-part-box-' + heading).find('div.eles-box').append(itemBoxHtml);    //綁定Dom事件    this.bindDelItemBtn('#item-' + t + ' a.btn-del-item');    this.movePlusBtnBox(heading);    this.bindNewEleUpload(type);  },  bindNewEleUpload: function(type) {    var self  = this;    switch(type) {      case 'image':      case 'question':      case 'know':      self.bindUploadModal('a.btn-upload');      break;      case 'audio':      self.bindUploadEleAudioBtn('a.audio-upload-btn');      self.bindDelAudioBtn('a.btn-del-audio');      break;    }  },  initItemTplByType: function(type, t, heading) {    var itemHtml  = eleTplMap[type].replace(/{t}/g, t);    itemHtml    = itemHtml.replace(/{sort_num}/g, this.getNewEleSortNum(heading));     return itemHtml.replace(/{headingId}/g, heading);  },  initItemBoxTpl: function(content, heading, t, side, type) {    var itemBoxHtml = eleTplMap.itemBox.replace(/{t}/g, t);    itemBoxHtml   = itemBoxHtml.replace(/{headingId}/g, heading);    itemBoxHtml   = itemBoxHtml.replace(/{side}/g, side);    itemBoxHtml   = itemBoxHtml.replace(/{content}/g, content);    itemBoxHtml   = itemBoxHtml.replace(/{hash}/g, hex_md5(t));    itemBoxHtml   += '<div class="clearfix" id="clearfix-' + heading + '"></div>';         return itemBoxHtml.replace(/{type}/g, type);  },  movePlusBtnBox: function(heading) {    //刪除原有    $('#new-item-box-' + heading).remove();    //加入新    var plusBtnHtml   = eleTplMap.plusBtn.replace(/{headingId}/g, heading);    $(plusBtnHtml).insertBefore('#clearfix-' + heading);    var $items     = $('#ele-part-box-' + heading).find('div.item-ele-box');    if($items.length < 2) {      $($items[0]).find('a.btn-del-item').hide();    } else {      $($items[0]).find('a.btn-del-item').show();    }    //綁定事件    this.bindAppendNewElement('#new-item-box-' + heading + " ul.new-item-list-box li a");    this.bindPlusBtn('#btn-plus-' + heading);  },  bindNewItemBoxClose: function(dom) {    $(dom).click(function() {      $('div.new-item-box').hide();    });  },  bindPlusBtn: function(dom) {    $(dom).click(function(event) {      $('div.new-item-box').hide();      var id = $(this).attr('data-heading-id');      $('#new-item-box-' + id + ' div.new-item-box').removeClass('hide').attr('data-show', '1').show();      event.preventDefault();    });  },  initPlusBtn: function() {    var self  = this;    $('div.ele-part-box').each(function() {      var dataId   = $(this).attr('data-heading');      self.movePlusBtnBox(dataId);    });  },  bindDelItemBtn: function(dom) {    var self  = this;    $(dom).click(function() {      var $target = $(this);      var t    = HHJsLib.initPopover($target, '您確定要刪除這項嗎?');      var id   = $target.attr('data-id');      var heading = $('#item-' + id).attr('data-heading-id');      $('#btn-sure-' + t).click(function() {        if(1 == $target.attr('data-new')) {          $.get(            queryUrl + 'timelineele/adel',            {id: $target.attr('data-id')},            function(response) {              if(false === response.rs) {                return HHJsLib.warn(response.message);              }              $('#item-' + id).fadeOut('fast', function() {                $(this).remove();                self.movePlusBtnBox(heading);                self.reArrangeItem(heading);              });              $target.popover('destroy');            }          );          return;        }        $target.popover('destroy');        $('#item-' + id).fadeOut('fast', function() {          $(this).remove();          self.movePlusBtnBox(heading);          self.reArrangeItem(heading);        });      });    });  },  reArrangeItem: function(heading) {    var rank  = 1;    $('#ele-part-box-' + heading).find('div.item-ele-box').each(function() {      if(rank % 2 === 0) {        $(this).removeClass('pull-left item-left')        .addClass('pull-right item-right');      } else {        $(this).removeClass('pull-right item-right')        .addClass('pull-left item-left');      }      rank ++;    });  },  bindNewConBtn: function() {    var self  = this;    $('#btn-new-con-item').click(function() {      var t  = self.getTimestamp();      var conItemHtml   = eleTplMap.conItemTpl.replace(/{t}/g, t);      $('#conclusion-box').append(conItemHtml);      self.bindDelConBtn('#btn-del-con-' + t);      self.bindUploadModal('a.btn-upload');    });  },  bindDelConBtn: function(dom) {    var self  = this;    $(dom).click(function() {      var $target = $(this);      var t    = HHJsLib.initPopover($target, '您確定要刪除這個結論嗎?');      var id   = $target.attr('data-id');      $('#btn-sure-' + t).click(function() {        if(1 == $target.attr('data-new')) {          $.get(            queryUrl + 'timelineele/adel',            {id: $target.attr('data-id')},            function(response) {              if(false === response.rs) {                return HHJsLib.warn(response.message);              }              $('#item-con-' + id).fadeOut('fast', function() {                $(this).remove();              });              $target.popover('destroy');            }          );          return;        }        $target.popover('destroy');        $('#item-con-' + id).fadeOut('fast', function() {          $(this).remove();        });      });    });  },  getNewEleSortNum: function(heading) {    return parseInt(this.getMaxSortNum(heading)) + 1;  },  getMaxSortNum: function(heading) {    var sortNums  = [];    $('.ele-sort-' + heading).each(function() {      sortNums.push($(this).val());    });    sortNums    = sortNums.sort(function(a, b) {      if (a === b) {         return 0;      }      if (typeof a === typeof b) {        return a > b ? -1 : 1;      }      return typeof a > typeof b ? -1 : 1;    });     return sortNums[0] == null ? 0 : sortNums[0];  },  bindUploadEleImageBtn: function() {    this.bindUploadModal('a.btn-upload');  },  bindUploadEleAudioBtn: function(dom) {    var self    = this;    $(dom).click(function() {      var $this  = $(this);      var t    = HHJsLib.modal.confirm(        '上傳音頻',        '<div class="text-center">'        + ' <p>瀏覽您電腦里,從中選擇一個音頻文件。</p>'        + ' <div class="btn-box btn btn-blue">'        + ' <div id="upload-btn">從電腦上傳</div>'        + ' </div>'        + ' </div>'      );      var uploader  = HJZUploader.createAudio(        '#upload-btn',         {           formData: {model: 'timeline'},        },        function(response) {          if(false == response.rs) {            self.setDemoBoxInit($this);            return HHJsLib.warn(response.message);          }          self.setDemoAudioInfo($this, response.data);          $('#dialog-box-' + t).modal('hide');        }      );      uploader.on('uploadProgress', function(file) {        self.setDemoBoxLoading($this);      });       return uploader;    });  },  setDemoAudioInfo: function($target, data) {    var audioHtml  = '<audio controls="controls"><source src="' + siteUrl + data.src + '" /></audio>';    $($target.attr('data-demo-box')).html(audioHtml).show();    $($target.attr('data-field')).attr('data-id', data.id).attr('data-src', data.src);  },  bindUploadModal: function(dom) {    var self    = this;    $(dom).unbind('click').click(function() {      var $this  = $(this);      var t    = HHJsLib.modal.confirm(        '上傳圖片',        '<div class="text-center">'        + ' <p>瀏覽您電腦里的圖片,從中選擇一張。</p>'        + '<div class="btn-box btn btn-blue">'        + ' <div id="upload-btn">從電腦上傳</div>'        + ' </div>'        + ' </div>'      );      var uploader  = HJZUploader.createImage(        '#upload-btn',         {           formData: {model: 'timeline'}        },        function(response) {          if(false == response.rs) {            self.setDemoBoxInit($this);            return HHJsLib.warn(response.message);          }          var imgHtml   = '<img src="'            + siteUrl + response.data.src            + '" alt="' + response.data.name + '" />';          $($this.attr('data-demo-box')).html(imgHtml).show();          $($this.attr('data-field')).val(response.data.id).attr('data-src', response.data.src);          $('#dialog-box-' + t).modal('hide');        }      );      uploader.on('uploadProgress', function(file) {        self.setDemoBoxLoading($this);      });      self.bindDelImageBtn('a.btn-del-image');       return uploader;    });  },  bindPreviewBtn: function() {    var self  = this;    $('#edit-btn, #preview-btn').click(function() {      try{        self.verifyBaseInfo();        self.verifyEleInfo();        self.verifyConclusionInfo();        $('#timeline-form').submit();      }catch(e) {        return HHJsLib.warn(e);      }    });  },  verifyBaseInfo: function() {    HHJsLib.isEmptyByDom('#image-path', '時間軸大圖');    HHJsLib.isEmptyByDom('#cover', '時間軸封面');    HHJsLib.isEmptyByDom('#name', '標題');    HHJsLib.isEmptyByDom('#description', '描述');  },  verifyEleInfo: function() {    this.verifyHeaderEleInfo();    this.verifyTextEleInfo();    this.verifyImageEleInfo();    this.verifyVideoEleInfo();    this.verifyAudioEleInfo();    this.verifyQuestionEleInfo();    this.verifyKnowEleInfo();  },  verifyHeaderEleInfo: function() {    $('div.item-heading-box').each(function() {      HHJsLib.isEmpty($(this).find('textarea').val(), '頭條內容');          });  },  verifyTextEleInfo: function() {    $('div.item-text-box').each(function() {      HHJsLib.isEmptyByDom('#ele-text-' + $(this).attr('data-id'), '文本內容元素');    });  },  verifyImageEleInfo: function() {    $('div.item-image-box').each(function() {      HHJsLib.isEmptyByDom('#ele-image-hash-' + $(this).attr('data-id'), '圖片地址');      HHJsLib.isEmptyByDom('#ele-image-content-' + $(this).attr('data-id'), '圖片介紹');    });  },  verifyVideoEleInfo: function() {    $('div.item-video-box').each(function() {      HHJsLib.isEmptyByDom('#ele-video-hash-' + $(this).attr('data-id'), '視頻地址');      HHJsLib.isEmptyByDom('#ele-video-content-' + $(this).attr('data-id'), '視頻介紹');    });  },  verifyAudioEleInfo: function() {    $('div.item-audio-box').each(function() {      HHJsLib.isEmptyByDom('#ele-audio-hash-' + $(this).attr('data-id'), '音頻地址');      HHJsLib.isEmptyByDom('#ele-audio-content-' + $(this).attr('data-id'), '音頻介紹');    });  },  verifyQuestionEleInfo: function() {    $('div.item-question-box').each(function() {      HHJsLib.isEmptyByDom('#ele-question-content-' + $(this).attr('data-id'), '問題內容');      HHJsLib.isEmptyByDom('#ele-question-extend-' + $(this).attr('data-id'), '問題答案解釋');      HHJsLib.isEmpty(answerLen, '問題答案');      $('#answer-box-' + $(this).attr('data-id')).find('textarea').each(function() {        HHJsLib.isEmpty($(this).val(), '問題答案');      });    });  },  verifyKnowEleInfo: function() {    $('div.item-know-box').each(function() {       HHJsLib.isEmptyByDom('#ele-know-hash-' + $(this).attr('data-id'), '知道圖片地址');      HHJsLib.isEmptyByDom('#ele-know-content-' + $(this).attr('data-id'), '知道介紹');    });  },  verifyConclusionInfo: function() {    var length     = $('#conclusion-box div.item-con').length;    HHJsLib.isEmpty(length, '總結');    $('#conclusion-box div.item-con').each(function() {      var dataId = $(this).attr('data-id');      HHJsLib.isEmptyByDom('#ele-con-hash-' + dataId, '總結圖片');      HHJsLib.isEmptyByDom('#ele-con-content-' + dataId, '總結詳情');    });  },  bindDownloadEleAudioBtn: function() {    var self  = this;    $('a.download-audio-btn').click(function() {      var $this    = $(this);      try{        HHJsLib.isEmptyByDom("#item-audio-upload-hash-" + $this.attr('data-id'), '下載地址');        var url   = $("#item-audio-upload-hash-" + $this.attr('data-id')).val();        if('mp3' != url.substring(url.lastIndexOf('.') + 1).toLowerCase()) {          return HHJsLib.warn('格式不支持,必須是Mp3格式!');        }         var t    = HHJsLib.modal.info(          '下載音頻',          '<p class="text-center">正在下載音頻文件中,請稍等...<p>'        );        self.setDemoBoxLoading($this);        $.getJSON(          siteUrl + 'index.php/public/resource/adownload',           {url: encodeURIComponent(url)},           function(response) {            if(false == response.rs) {              self.setDemoBoxInit($this);              return HHJsLib.warn(response.message);            }            $('#dialog-box-' + t).modal('hide');            self.setDemoAudioInfo($this, response.data);          }        );      } catch(e) {        return HHJsLib.warn(e);      }    });  },  setDemoBoxLoading: function($target) {    $($target.attr('data-box')).removeClass('no-file').addClass('uploaded');    $($target.attr('data-file-box')).html('');  },  setDemoBoxInit: function($target) {    $($target.attr('data-box')).removeClass('uploaded').addClass('no-file');    $($target.attr('data-file-box')).html('');  },  bindSetPreviewVideo: function() {    $('input.ele-video').change(function() {      var url   = $(this).val();      if(url != '') {        if('swf' != url.substring(url.lastIndexOf('.') +1 ).toLowerCase()) {          return HHJsLib.warn('視頻地址不合法,請輸入有效的在線觀看Flash地址!');        }        var previewHtml   = '<embed src="' + url + '" quality="high" width="495" height="220" align="middle" allowScriptAccess="always" allowFullScreen="true" mode="transparent" type="application/x-shockwave-flash"></embed>';        $($(this).attr('data-demo-box')).html(previewHtml);      }    });  },  bindDelEleBtnFormEdit: function() {     this.bindDelUploadImgBtn();  },   getTimestamp: function() {     return (new Date()).getTime();   }});

以上所述就是本文給大家分享的全部內容了,希望能夠對大家學習javascript有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人两性免费视频| 精品视频久久久久久| 精品久久久久久久久久久久久久| 视频直播国产精品| 欧美大片免费看| 国产日本欧美在线观看| 国产成人高清激情视频在线观看| 亚洲第一精品夜夜躁人人爽| 欧美黄色片视频| 欧洲亚洲在线视频| 国产成人精品久久二区二区| 国产美女久久精品| 亚洲第一精品自拍| 福利视频一区二区| 精品国产91久久久久久| 国产成人精品久久二区二区| 欧美日韩国产在线看| 欧美成人黑人xx视频免费观看| 日本午夜精品理论片a级appf发布| 国产日韩欧美夫妻视频在线观看| 亚洲欧美综合另类中字| 国产精品美女午夜av| 久久久在线观看| 96国产粉嫩美女| 国产一区二区色| 国产999精品久久久| 日韩黄在线观看| 在线精品视频视频中文字幕| 亚洲视频综合网| 精品免费在线观看| 中文字幕亚洲一区二区三区| 色噜噜久久综合伊人一本| 国产精品视频成人| 欧美放荡办公室videos4k| 国产日产欧美精品| 亚洲精品www久久久久久广东| xxav国产精品美女主播| 黑人与娇小精品av专区| www.亚洲天堂| 日韩欧美极品在线观看| 日韩中文视频免费在线观看| 国产一区二区香蕉| 狠狠久久五月精品中文字幕| 亚洲性生活视频| 久久久噜噜噜久久久| 国产精品香蕉国产| 久久久99久久精品女同性| 色香阁99久久精品久久久| 欧美日韩一二三四五区| 日韩精品极品在线观看| 欧美精品日韩www.p站| 日本一区二区在线播放| 91免费人成网站在线观看18| 国产精品视频专区| 欧美日韩激情小视频| 欧美亚洲激情在线| 欧美激情免费在线| 91国产视频在线| 国产精品美女视频网站| 欧美日韩在线视频一区二区| 国产成人亚洲综合青青| 一本一本久久a久久精品牛牛影视| 亚洲缚视频在线观看| 日韩一区av在线| 热久久美女精品天天吊色| 热99久久精品| 国产成人jvid在线播放| 欧美黄色三级网站| 亚洲精品国产免费| 欧美一区二区三区免费视| 欧美在线视频一区二区| 欧美激情精品久久久久久变态| 亚洲高清免费观看高清完整版| 欧美大片欧美激情性色a∨久久| 精品国产91久久久久久老师| 午夜精品美女自拍福到在线| 国产伦精品免费视频| 亚洲精品日韩在线| 国产精品69久久| 国产精品入口日韩视频大尺度| 中文字幕久久久av一区| 国产亚洲精品综合一区91| 久久不射热爱视频精品| 久久久久久久久国产| 亚洲欧美日韩天堂| 欧美在线视频播放| 日本精品久久久| 亚洲奶大毛多的老太婆| 久久精品国亚洲| 亚洲三级黄色在线观看| 日韩一区二区福利| 亚洲精品网址在线观看| www高清在线视频日韩欧美| 亚洲免费av网址| 欧美整片在线观看| 亚洲激情视频网站| 一色桃子一区二区| 成人久久精品视频| 欧美激情综合亚洲一二区| 九色成人免费视频| 欧美午夜精品久久久久久浪潮| 性欧美长视频免费观看不卡| 7m第一福利500精品视频| 久久久精品影院| 正在播放亚洲1区| 91在线精品视频| 97色在线观看免费视频| 亚洲国产精品999| 欧美日韩中文在线| 国产精品久久久久久久午夜| 日韩在线观看免费高清| 亚洲视频在线看| 日韩美女在线观看一区| 亚洲国产天堂网精品网站| 国产午夜精品美女视频明星a级| 91精品国产高清久久久久久| 啪一啪鲁一鲁2019在线视频| 亚洲黄色www网站| 欧美精品www在线观看| 久久久亚洲精品视频| 国产精品免费网站| 欧美性感美女h网站在线观看免费| 91免费综合在线| 九九热这里只有精品6| 欧美成人自拍视频| 国产丝袜一区二区三区| 最近2019好看的中文字幕免费| 久久久久久久亚洲精品| 久久艹在线视频| 久久久久久有精品国产| 国产欧美在线视频| 欧美成人精品在线播放| 欧美理论片在线观看| 久久国产精品久久久久| 国产精品久久精品| 精品国产区一区二区三区在线观看| 欧美午夜电影在线| 久久久精品在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 91亚洲国产成人久久精品网站| 精品久久国产精品| 91色在线观看| 日本成人在线视频网址| 日韩免费视频在线观看| 性金发美女69hd大尺寸| 亚洲成人av资源网| 欧美国产亚洲精品久久久8v| 亚洲视频国产视频| 欧美视频精品一区| 欧美亚洲第一区| 久久伊人免费视频| 色综合色综合网色综合| 在线视频欧美性高潮| 日韩欧美精品在线观看| 一区二区中文字幕| 欧美国产亚洲精品久久久8v| 91精品国产自产在线观看永久| 91免费看国产| 在线电影欧美日韩一区二区私密| 亚洲精品98久久久久久中文字幕| 中文字幕欧美日韩| 久久久黄色av| 国内揄拍国内精品少妇国语| 日韩中文在线中文网在线观看|