项目是:vue+jquery混合使用
问题:VUE循环出来的列表自动绑定一个单击事件,但是每向上加载一次就绑定一次,导致多次绑定的数据的单击事件就会失效,前面想过用vue传参增加方法什么的判断,但是感觉那样代码太复杂,不想那样搞。
解决方案:每一次进去绑定之前,都把前面一次的数据进行一个解绑处理,这样不管如何加载,我的单击事件的绑定都是没有问题的。
阅读之后希望能帮到你,谢谢阅读!!!!
<script type="text/javascript">
function jqInit() {
$(function() {
$('.toggle-btn').unbind(); //解绑Click事件
$('.toggle-btn').click(function() {//再进行绑定
$(this).toggleClass('on');
$(this).parents('.deftext').siblings('.moretext').slideToggle(200);
})
})
};
</script>
下面是VUE代码 方法
//获取合同数据
htListLoad(isUpRefresh, params) { //获取合同数据
if (this.firstload) {
const layerid = layer.open({
type: 2,
content: '正在加载'
});
setTimeout(() => {
window.alert("1111");
this.firstload = false;
mui('section').pullRefresh().endPullupToRefresh(false);
}, 500)
}
for (let p in params) {
this.curparam[p] = params[p];
}
if (!isUpRefresh) {
this.curparam.page = 1;
this.htlist = [];
}
htList1(this.curparam).then(res => {
layer.closeAll();
//res.data.total 获取数据总数
this.curparam.total = res.data.total;
let result = res.data.rows;
this.htlist = this.htlist.concat(result);
for (let i in this.htlist) {
let temp = JSON.parse(JSON.stringify(this.htlist[i]))
for (let j in this.zh) {
this.zh[j] += temp[j];
}
}
setTimeout(() => {
mui('section').pullRefresh().endPullupToRefresh(this.htlist.length == res.data.total);
}, 200);
jqInit();
})
},