因为利用js在页面加载后添加需要点击事件的代码,发现在点击后会代码会执行两次,因为有toggle效果,导致弹窗出现又很快丢失
查了一些资料,发现这是冒泡的原因,需要在点击事件代码中加入阻止冒泡的方法:
e.stopPropagation();
但是发现还是不行
后面查到,off函数可以解除由on函数所绑定的事件,所以在js代码中on函数前调用下Off函数,就正常了:
$("li.taskli").off('click','a').on('click','a',function(e){ //在on绑定前调用off去除绑定
//$(document).on('click','li.taskli a',function(e) { //原先的写法
console.log("here")
if ($(this).parent().find('div.popover').size()>0)
{
$(this).popover('destroy')
}else{
var uuid = $(this).attr('targetuuid');
var taskhtml = '<div id="taskview">' + popheadDivHtml()+'</div>';
$(this).popover({
placement:'bottom',
title:uuid,
html:'true',
content:taskhtml
}).popover('toggle');
getResultFromFile(uuid)
}
e.stopPropagation(); //阻止冒泡
})