vue v-on:click傳遞動(dòng)態(tài)參數(shù)的步驟
最近項(xiàng)目中要為一個(gè)循環(huán)列表動(dòng)態(tài)傳送當(dāng)前點(diǎn)擊列的數(shù)據(jù),查了很久資料也沒(méi)有一個(gè)完美的解決方案,
新手只能用vue的事件處理器與jquery的選擇器做了一個(gè)不倫不類(lèi)的方案,居然也能解決這個(gè)問(wèn)題,作此記錄留待以后會(huì)有更好的方法解決這個(gè)事情
需求:根據(jù)每列傳遞的參數(shù),決定彈窗后面是積分夠了去直接購(gòu)買(mǎi)還是不夠需要去轉(zhuǎn)換
二、頁(yè)面代碼[無(wú)法可傳的參數(shù),我把它放進(jìn)了一個(gè)自定義標(biāo)簽date-id]
<div class='ticket-main'> <a href='javascript:void(0);' rel='external nofollow' v-for='item in mediaBox' :date- v-on:click='upHref($event)'> <div class='weui_media_hd'> <img :src='http://www.aoyou183.cn/bcjs/item.mediaBoxImg' alt='' /> </div> <div class='weui_media_bd'> <h4 v-text='item.name'>雙色球彩票一注</h4> <p class='weui_media_desc'><span class='icon icon-2'></span><span v-text='item.price'></span>鋇</p> </div> </a> </div>
三、js代碼
var secretRecipe = new Vue({ el: '#secret-recipe', data: { pointsNum: [], mediaBox:[] }, methods:{ upHref:function(e){ hrefSrc(e.currentTarget); } }});var prize=[ {mediaBoxImg:'../b2b-reception/images/secret/icon_01.png',name:'雙色球彩票一注',price:’250’,num:'1'}, {mediaBoxImg:'../b2b-reception/images/secret/icon_02.png',name:'50M流量',price:’230’,num:'2'}, {mediaBoxImg:'../b2b-reception/images/secret/icon_03.png',name:'景點(diǎn)抽抽樂(lè)',price:'300',num:'3'} ];$(function(){ secretRecipe.mediaBox = prize; })function hrefSrc(v){ console.log($(v).attr('date-id')); $.modal({ title: '支付方式', text: '選擇你的支付方式', buttons: [ { text: '轉(zhuǎn)化積分', onClick: function(){ $.alert('你選擇了轉(zhuǎn)化積分'); } }, { text: '立即購(gòu)買(mǎi)', onClick: function(){ $.alert('你選擇了立即購(gòu)買(mǎi)'); } }, { text: '取消', className: 'default'}, ] });}
重點(diǎn)說(shuō)明:$event,官方文檔中是說(shuō)該對(duì)象【在監(jiān)聽(tīng)原生 DOM 事件時(shí),方法以事件為唯一的參數(shù)。如果使用內(nèi)聯(lián)語(yǔ)句,語(yǔ)句可以訪問(wèn)一個(gè) $event 屬性:v-on:click='handle(’ok’, $event)'。】
handle(e){e.currentTarget}
方法接收時(shí)取的是點(diǎn)擊的該DOM本身
handle(e){e.target}
方法接收時(shí)取的是點(diǎn)擊的該元素
handle(e){e.target.tagName}
方法接收時(shí)取的是點(diǎn)擊的該元素的標(biāo)簽名(如div.p.img)
補(bǔ)充知識(shí):VUE之命令行報(bào)錯(cuò):Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead 解決辦法
Failed to compile.
./node_modules/vue-loader/lib/template-compiler?{'id':'data-v-59926570','hasScoped':true,'transformToRequire':{'video':['src','poster'],'source':'src','img':'src','image':'xlink:href'},'buble':{'transforms':{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/page/home/Home.vue (Emitted value instead of an instance of Error)
Error compiling template:
<div><el-header class='animated faedOutUp'><myHeader></myHeader></el-header></div> <div>這里才是首頁(yè)</div>
- Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
@ ./src/page/home/Home.vue 11:0-366
@ ./src/router/index.js
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js
寫(xiě)vue時(shí)經(jīng)常被一大片報(bào)錯(cuò)驚了個(gè)呆
其實(shí)很多時(shí)候,都是些小毛病
比如這次,從文字翻譯上來(lái)講,其實(shí)Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead這句話已經(jīng)講的很明白了,直譯出來(lái) 就是:組件模板應(yīng)
該包含一個(gè)根元素。如果在多個(gè)元素上使用V-IF,則使用V-ELS-IF來(lái)鏈接它們。
但是這么說(shuō)依然讓新手有點(diǎn)摸不著頭腦,其實(shí)就是說(shuō)在模版里只能有一個(gè)主div(根對(duì)象),如果有多個(gè)元素,請(qǐng)用一個(gè)主div包含他們
錯(cuò)誤代碼如下:
<template> <div><el-header class='animated faedOutUp'><myHeader></myHeader></el-header></div> <div>這里才是首頁(yè)</div></template>
修改后如下
<template> <div> <el-header class='animated faedOutUp'><myHeader></myHeader></el-header> <div>這里才是首頁(yè)</div> </div></template>
保存運(yùn)行,錯(cuò)誤解決了!
以上這篇vue v-on:click傳遞動(dòng)態(tài)參數(shù)的步驟就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題2. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)3. 如何在jsp界面中插入圖片4. 爬取今日頭條Ajax請(qǐng)求5. jsp EL表達(dá)式詳解6. Ajax實(shí)現(xiàn)表格中信息不刷新頁(yè)面進(jìn)行更新數(shù)據(jù)7. jsp中sitemesh修改tagRule技術(shù)分享8. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實(shí)現(xiàn)代碼9. ASP基礎(chǔ)知識(shí)VBScript基本元素講解10. JSP servlet實(shí)現(xiàn)文件上傳下載和刪除
