用vue 的v-if 或 v-show bootstrap的popover弹出框事件失效

  

$(function () {
 //这样经过 v-show 这个事件不会起作用
    $('[data-toggle="noNeed"]').popover();
 
})

解决方法在vue数据渲染完后 执行popover

let projectHeaderVue = new Vue({
    el: '#projectInfoDiv',
 
    methods: {
        loadProject: function () {
            let vue = this;

            $.ajax({
                url: '/proj/task-project/get',
                type: 'post',
                data: {
                    id: window["project-id"]
                },
                dataType: 'json'
            }).done(function (res) {
                if (res != null) {
                   //通过vue提供的 $nextTick方法在dom结构加载完后执行
                    vue.$nextTick(function(){
                        $('[data-toggle="noNeed"]').popover();
                    })
 
                } else {
                    toastr.error("没有该项目!");
                }
            }).fail(function ($xhr) {
                toastr.error($xhr.responseJSON.message);
            });
        },
 
        },
 
    
});

你可能感兴趣的:(js)