欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue項目中使用jquery的簡單方法

 更新時間:2019年05月16日 08:33:02   作者:前端填坑之旅  
這篇文章主要給大家介紹了關(guān)于Vue項目中使用jquery的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

在vue項目中,需要實現(xiàn)某些特定的功能時,使用mvvm模式不易實現(xiàn)。因此引入jquery包來完成需求

jquery中的觸發(fā)事件可以自己定義在mounted中,如果需要使用vue中data的數(shù)據(jù),直接使用this.msg是無法使用的,需要另外定義const _this = this,

存儲this.之后便可以在事件中使用_this.msg數(shù)據(jù)了。

需求:在品牌處可以輸入,并且會有模糊搜索的下拉框,也可下拉選擇,在輸入完畢后檢驗值是否在下拉框中存在,聚焦時藍色邊框,change時如果不存在則紅框顯示,存在的話就綠框提示,(就是帶輸入建議的輸入框)

問題: 使用element-ui中的el-autocomplete組件,開始通過失焦事件來驗證,但是如果選擇了下拉框某個值時(選中后會將下拉框的值賦給上面的輸入框),失焦事件觸發(fā)會在賦值之前,因此拿失焦時輸入框的值來進行判斷時錯誤的,在先改變輸入框的值后再去選擇下拉框,change事件有同樣的bug,沒辦法只能自己引入jquery來完成

點擊輸入框后,通過placeholder判斷是否是品牌下的的輸入框,因為每個輸入框都有這個類,如果是的話則增加一個類名,如果第一次點擊的位置和第二次鼠標(biāo)點擊的位置都是品牌下的輸入框,則執(zhí)行相應(yīng)的邏輯判斷,

在邏輯執(zhí)行完后就刪除其他處同樣的類名inputList

const _this = this 
$('body').delegate('.el-input__inner', 'focus', function(e) { // 因為是動態(tài)生成的,所以選擇這種方式來監(jiān)聽事件
   if (e.target.placeholder === '請輸入品牌') { // 當(dāng)聚焦在品牌輸入框時觸發(fā)
    $(this).addClass('inputList') // 加上一個類名inputList
    if ($('.inputList').length === 2) { // 判斷下一次點擊的位置,當(dāng)從第一個輸入框改值后下一個聚焦位置還是品牌下的輸入框時
     if (!$('.inputList').not(this).val()) {
      $('.inputList').not(this).css('border', '1px solid #67c23a')
     } else {
      let num = 0
      for (let j = 0; j < _this.goodsBrands.length; j++) {
       if ($('.inputList').not(this).val() === _this.goodsBrands[j].value) {
        num += 1
        break
       }
      }
      if (num === 0) {
       _this.$message.error('輸入的品牌不在品牌列表中')
       $('.inputList').not(this).css('border', '1px solid #F56C6C')
      } else {
       $('.inputList').not(this).css('border', '1px solid #67c23a')
      }
     }
    }

    $('.el-input__inner').not(this).removeClass('inputList') // 邏輯執(zhí)行完之后刪除當(dāng)前聚焦位置以外的inputList類,這樣就保持.inputList長度最多為2
   }
  })

此處是為了模擬出輸入框的change事件,因為在聚焦時會添加inputList這個類名。所以這里可以判斷是否是自己想要的位置,如果是的話給一個標(biāo)志位getindex,當(dāng)點擊到品牌下的輸入框時,如果第二次的點擊位置不是品牌其他位置的輸入框,則進行邏輯判斷

$(document).click(function(e) { // focus觸發(fā)時也會觸發(fā)這個事件,并且觸發(fā)在focus事件之后
   if (e.target.classList[1] === 'inputList') { // 判斷是否點擊在對應(yīng)位置
    _this.getIndex = 1 // 用于標(biāo)志在聚焦事件觸發(fā)后的下一次點擊是否同樣會觸發(fā)聚焦,如果是則把第二次點擊當(dāng)成第一次重新判斷,等到下一次點擊再來判斷
   } else {
    if (_this.getIndex === 1) { 
     if (!$('.inputList').eq(0).val()) {
      $('.inputList').eq(0).css('border', '1px solid #67c23a')
     } else {
      let num = 0
      for (let j = 0; j < _this.goodsBrands.length; j++) {
       if ($('.inputList').eq(0).val() === _this.goodsBrands[j].value) {
        num += 1
        break
       }
      }
      if (num === 0) {
       _this.$message.error('輸入的品牌不在品牌列表中')
       $('.inputList').eq(0).css('border', '1px solid #F56C6C')
      } else {
       $('.inputList').eq(0).css('border', '1px solid #67c23a')
      }
     }
     $('.el-input__inner').removeClass('inputList')
     _this.getIndex = 0 // 每次第二次點擊了其他位置時,getIndex重新計數(shù)
    }
   }
  })

小白一枚,如果有其他更好的方法,歡迎各位同行指教,多多交流

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • vue實現(xiàn)公共組件傳值并及時監(jiān)聽到數(shù)據(jù)更新視圖

    vue實現(xiàn)公共組件傳值并及時監(jiān)聽到數(shù)據(jù)更新視圖

    這篇文章主要介紹了vue實現(xiàn)公共組件傳值并及時監(jiān)聽到數(shù)據(jù)更新視圖方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue2.0父子組件間通信的實現(xiàn)方法

    vue2.0父子組件間通信的實現(xiàn)方法

    本篇文章主要介紹了vue2.0父子組件間通信的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • vue 解決遍歷對象顯示的順序不對問題

    vue 解決遍歷對象顯示的順序不對問題

    今天小編就為大家分享一篇vue 解決遍歷對象顯示的順序不對問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 教你輕松解決Vue?Dialog彈窗詬病

    教你輕松解決Vue?Dialog彈窗詬病

    彈窗經(jīng)常被使用在一些表單的增刪改查啊,或者彈出一些提示信息等等,這篇文章主要給大家介紹了關(guān)于Vue?Dialog彈窗詬病解決的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue中使用localstorage來存儲頁面信息

    vue中使用localstorage來存儲頁面信息

    這篇文章主要介紹了vue中使用localstorage來存儲頁面信息,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • vue3如何解決各場景l(fā)oading過度(避免白屏尷尬!)

    vue3如何解決各場景l(fā)oading過度(避免白屏尷尬!)

    在開發(fā)的過程中點擊提交按鈕,或者是一些其它場景總會遇到loading加載,下面這篇文章主要給大家介紹了關(guān)于vue3如何解決各場景l(fā)oading過度的相關(guān)資料,避免白屏尷尬,需要的朋友可以參考下
    2023-03-03
  • Vue實現(xiàn)路由跳轉(zhuǎn)的3種方式超詳細分解

    Vue實現(xiàn)路由跳轉(zhuǎn)的3種方式超詳細分解

    Vue.js是一款流行的前端JavaScript框架,它提供了多種方式來實現(xiàn)路由跳轉(zhuǎn),下面這篇文章主要給大家介紹了關(guān)于Vue實現(xiàn)路由跳轉(zhuǎn)的3種方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • 手把手教你創(chuàng)建vue3項目的最佳方式

    手把手教你創(chuàng)建vue3項目的最佳方式

    如今的Vue3已經(jīng)勢不可擋,當(dāng)然搭建一個全新的Vue3項目也有了全新的方式,下面這篇文章主要給大家介紹了關(guān)于如何手把手教你創(chuàng)建vue3項目的最佳方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • Vue 電商后臺管理項目階段性總結(jié)(推薦)

    Vue 電商后臺管理項目階段性總結(jié)(推薦)

    這篇文章主要介紹了Vue 電商后臺管理項目階段性總結(jié),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • vue使用highcharts自定義圖例點擊事件

    vue使用highcharts自定義圖例點擊事件

    這篇文章主要為大家詳細介紹了vue使用highcharts自定義圖例點擊事件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論