vue v-on:click傳遞動(dòng)態(tài)參數(shù)的步驟
最近項(xiàng)目中要為一個(gè)循環(huán)列表動(dòng)態(tài)傳送當(dāng)前點(diǎn)擊列的數(shù)據(jù),查了很久資料也沒有一個(gè)完美的解決方案,
新手只能用vue的事件處理器與jquery的選擇器做了一個(gè)不倫不類的方案,居然也能解決這個(gè)問題,作此記錄留待以后會(huì)有更好的方法解決這個(gè)事情
需求:根據(jù)每列傳遞的參數(shù),決定彈窗后面是積分夠了去直接購(gòu)買還是不夠需要去轉(zhuǎn)換
二、頁(yè)面代碼[無法可傳的參數(shù),我把它放進(jìn)了一個(gè)自定義標(biāo)簽date-id]
<div class="ticket-main"> <a href="javascript:void(0);" rel="external nofollow" class="weui_media_box weui_media_appmsg weui_media_box_bg" v-for="item in mediaBox" :date-id="item.num" v-on:click="upHref($event)"> <div class="weui_media_hd"> <img class="weui_media_appmsg_thumb" :src="item.mediaBoxImg" alt="" /> </div> <div class="weui_media_bd"> <h4 class="weui_media_title" 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)抽抽樂",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)買", onClick: function(){ $.alert("你選擇了立即購(gòu)買"); } }, { text: "取消", className: "default"}, ] }); }
重點(diǎn)說明:$event,官方文檔中是說該對(duì)象【在監(jiān)聽原生 DOM 事件時(shí),方法以事件為唯一的參數(shù)。如果使用內(nèi)聯(lián)語(yǔ)句,語(yǔ)句可以訪問一個(gè) $event 屬性:v-on:click="handle('ok', $event)"?!?/p>
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
寫vue時(shí)經(jīng)常被一大片報(bào)錯(cuò)驚了個(gè)呆
其實(shí)很多時(shí)候,都是些小毛病
比如這次,從文字翻譯上來講,其實(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)講的很明白了,直譯出來 就是:組件模板應(yīng)
該包含一個(gè)根元素。如果在多個(gè)元素上使用V-IF,則使用V-ELS-IF來鏈接它們。
但是這么說依然讓新手有點(diǎn)摸不著頭腦,其實(shí)就是說在模版里只能有一個(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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目首次打開時(shí)加載速度很慢的優(yōu)化過程
這篇文章主要介紹了vue項(xiàng)目首次打開時(shí)加載速度很慢的優(yōu)化過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08webStorm?debug?vue項(xiàng)目的兩種方案圖文詳解
WebStorm作為一款功能強(qiáng)大的IDE,提供了豐富的調(diào)試功能和技巧,可以幫助你更高效地開發(fā)和調(diào)試Vue應(yīng)用,這篇文章主要給大家介紹了關(guān)于webStorm?debug?vue項(xiàng)目的兩種方案,需要的朋友可以參考下2024-07-07淺談Vue為什么不能檢測(cè)數(shù)組變動(dòng)
這篇文章主要介紹了淺談Vue為什么不能檢測(cè)數(shù)組變動(dòng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10vue項(xiàng)目因內(nèi)存溢出啟動(dòng)報(bào)錯(cuò)的解決方案
這篇文章主要介紹了vue項(xiàng)目因內(nèi)存溢出啟動(dòng)報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-09-09Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法(resource、Axios、Fetch、Excel導(dǎo)入)
本文主要介紹了Vue實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入的四種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07vue-cli3訪問public文件夾靜態(tài)資源報(bào)錯(cuò)的解決方式
這篇文章主要介紹了vue-cli3訪問public文件夾靜態(tài)資源報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09