vue中让一个div的点击事件关联到其他的相同div的方法
事实上采用的方法是利用每个元素的内部属性的特性:在以下的代码里面我用item.taskid绑定了一个自定义属性taskIdGo,于是每次通过判断这个div的taskIdGo的值是否相同来确定当前的div是否是自己所要操作的div。<a href="javascript:void(0)"><i class="fa fa-bug
·
事实上采用的方法是利用每个元素的内部属性的特性:
在以下的代码里面我用item.taskid绑定了一个自定义属性taskIdGo,于是每次通过判断这个div的taskIdGo的值是否相同来确定当前的div是否是自己所要操作的div。
<a href="javascript:void(0)"><i class="fa fa-bug fa-2" v-show="item.hasLinkedDefect" @click="submitdefect(item.taskId)" style="margin-left:30%;"></i></a>
<div class="TaskLinkedJiraUl" v-show="showLinkedDefectUl" :taskIdGo="item.taskId">
<ul @click="openUrlToJira">
<li v-for="(itemr,indexr) in TaskLinkedJiraArr" :TaskLinkedJira_li="indexr">【{{itemr.IssueKey}}】</li>
</ul>
</div>
submitdefect(taskid){
//event.stopPropagation();
let _this=this;
if(!this.showLinkedDefectUl){
let GetTaskLinkedJiraApi = DevTestApi + 'TestTask/GetTaskLinkedJira';
let user_token =sessionStorage.getItem('user_token');
let defectProjectId=this.TEST.taskProjectId;
let GetTaskLinkedJiraParams={
"token": user_token,
"projectId": defectProjectId,
"issueId": taskid
}
_this.axios.post(GetTaskLinkedJiraApi, GetTaskLinkedJiraParams).then(res=>{
console.log(res);
if(res.status==200){
this.TaskLinkedJiraArr=res.data.LinkedJiraItems;
//全部隐藏
this.showLinkedDefectUl=false;
//让当前的显示
$(".TaskLinkedJiraUl").each((index,item)=>{
if(Number(item.getAttribute("taskIdGo"))==taskid){
$(item).css("display","block");
}
})
document.addEventListener('click',(e)=>{
if(e.target.innerHTML!=$(this.$refs.LinkedDefectUlSpp).html()){
this.showLinkedDefectUl=false;
$(".TaskLinkedJiraUl").each((index,item)=>{
if(Number(item.getAttribute("taskIdGo"))==taskid){
$(item).css("display","none");
}
})
}
this.TaskLinkedJiraArr=[];
})
}
},err=>{
console.log(err);
})
}else{
this.showLinkedDefectUl=false;
$(".TaskLinkedJiraUl").each((index,item)=>{
if(Number(item.getAttribute("taskIdGo"))==taskid){
$(item).css("display","none");
}
})
this.TaskLinkedJiraArr=[];
}
//this.showOwnerDropdown($event);
},
end
更多推荐
已为社区贡献5条内容
所有评论(0)