最近項目中要爲一個循環列表動態傳送當前點擊列的數據,查了好久資料也沒有一個完美的解決方案,javascript
新手只能用vue的事件處理器與jquery的選擇器作了一個不三不四的方案,竟然也能解決這個問題,做此記錄留待之後會有更好的方法解決這個事情 vue
需求:根據每列傳遞的參數,決定彈窗後面是積分夠了去直接購買仍是不夠須要去轉換java
2、頁面代碼[沒法可傳的參數,我把它放進了一個自定義標籤date-id]jquery
<div class="ticket-main"> <a href="javascript:void(0);" 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>
3、js代碼app
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:"景點抽抽樂",price:"300",num:"3"} ]; $(function(){ secretRecipe.mediaBox = prize; }) function hrefSrc(v){ console.log($(v).attr("date-id")); $.modal({ title: "支付方式", text: "選擇你的支付方式", buttons: [ { text: "轉化積分", onClick: function(){ $.alert("你選擇了轉化積分"); } }, { text: "當即購買", onClick: function(){ $.alert("你選擇了當即購買"); } }, { text: "取消", className: "default"}, ] }); }
重點說明:$event,官方文檔中是說該對象【在監聽原生 DOM 事件時,方法以事件爲惟一的參數。若是使用內聯語句,語句能夠訪問一個 $event
屬性:v-on:click="handle('ok', $event)"
。】ui
handle(e){e.currentTarget}方法接收時取的是點擊的該DOM自己spa
handle(e){e.target}方法接收時取的是點擊的該元素code
handle(e){e.target.tagName}方法接收時取的是點擊的該元素的標籤名(如div.p.img)對象