framework7中,js添加的html,怎么绑定事件或添加自定义方法
课程设计
1
在framework7中,我从ajax中返回数据,将数据拼接成html,最后添加到页面中。但是既不能直接执行自定义的js方法,也不能使用@click的方式绑定,方法中再带上参数,就更不知道怎么搞了,请问大家应该怎么处理呢? 排版乱糟糟的,各位大神见谅
<template> <div > <!-- 顶部 --> <div > <div ></div> <div > <div > <a href="/Message/List/" > <i > email_fill <span >5</span> </i> </a> </div> <div >新闻中心</div> <div > <a href="/Search/" > <i > search </i> </a> </div> </div> </div> <div > <!--顶部导航--> <div id="BusinessTypeList" > </div> <!-- 新闻列表 --> <div > <ul id="newslist"> </ul> </div> </div> </div> </template> <script> return { data: function () { return {} }, methods: { //检索分类的新闻列表 ChooseBusinessType: function (Id) { var oBt = document.getElementById('bt' + Id); var newClass = oBt.className + ' xscrollmenu-item-active'; oBt.className = newClass; }, }, on: { tabMounted: function (e, page) { console.log('tab mounted'); var param = {}; param.Key = ''; BusinessType.GetList(param, function (list) { var oDivBtl = document.getElementById('BusinessTypeList'); var arrHtml = []; for (var i = 0; i < list.length; i++) { var item = list[i]; arrHtml.push('<div id="bt'+item.Id+'" ><a href="javascript:;" @click="test" >' + item.Name + '</a></div>'); } oDivBtl.innerHTML = arrHtml.join(''); }); } } }; </script>
在JS中的这一段怎么写呢?
第一种方式:因为是ajax后加载的,@click 没有解析
arrHtml.push('
<div id="bt'+item.Id+'" class="D8c_3020_209a23a xscrollmenu-item">
' + item.Name + '
</a></div>
');
第二种方式:onclick根本在framework7中根本不会执行
arrHtml.push('
</a></div>
');
-
<!-- 把 HTML 写在 template 里面,不要用 innerHTML --> <div id="BusinessTypeList" > <div v-for="item in list" :id="`bt${item.Id}`" > <a href="javascript:;" @click="test" >{{item.Name}} </a> </div> </div> …
// 数据放在 data 里 data: function () { return { list: [] } }, ... BusinessType.GetList(param, function (list) { this.list.push(...list) // 这里的 this 不一定对,代码是我云的,this 要指向这个 Vue 实例,实在不行把 function 改成箭头函数 }
发表回复