$(function () {
        var options = {
          trigger: 'manual',
          content: function () {
            return $('#favoriteOptionMenus').html();
          },
          html: true
        };
        var popoverElement = $("#filterOptions");
        popoverElement.mouseenter(function () {
          if (!popoverElement.attr("aria-describedby")) {
            popoverElement.attr("title", GlobalStringsForAssets.SAVE_SEARCH);
          }
        });
        popoverElement.click(function (e) {
          e.stopPropagation();
          if (popoverElement.attr("aria-describedby")) {
            $("#filterOptions").css({ "background-color": "initial", "color": "#2e6da4" });
            popoverElement.popover("destroy");
          } else {
            options.title = "";
            popoverElement.removeAttr("title");
            popoverElement.popover(options);
            popoverElement.popover("show");
            $(".popover-content #newFavoriteName").prop("value", $("#searchbox").val());
            $("#filterOptions").css({ "background-color": "#2e6da4", "color": "white" });
            $('.popover-content #searchFilter').val('');
            GetSavedFilters($(this), '');
            $('#saveFilterButton #btnSaveFavorite').click(function (e) {
              e.preventDefault();
              e.stopPropagation();
              var name = $('.popover-content #newFavoriteName').val();
              if (name == '') {
                _messagebox.newNotify2(GlobalStringsForAssets.ENTER_NAME, "Error");
                $("#filterOptions").css({ "background-color": "initial", "color": "#2e6da4" });
                return false;
              }
              // Create a new filter
              SaveFilter(-1, name, false);
              var itemShowLength = $('.popover.fade.bottom.in').find('ul.toolmenu li .glyphicon-star-empty').length;
              var newFavitor = $('<li class= "toolmenu filterdata"><span class="toolmenu narrow filterdata" filterfav="false"><span class="glyphicon glyphicon-star-empty toolicon"></span> ' + name + '<span class="glyphicon glyphicon-remove" style="float:right;"></span></span></li>');
              var hr_length = $('.popover.fade.bottom.in').find('ul.toolmenu li hr').length;
              if (hr_length != 0) {
                $('.popover.fade.bottom.in').find('ul.toolmenu li hr').after(newFavitor);
              } else {
                if (itemShowLength > 0) {
                  $('.popover.fade.bottom.in').find('ul.toolmenu').append(newFavitor);
                  if (itemShowLength > 10) {
                    for (var i = 10; i < itemShowLength; i++) {
                      $('.popover.fade.bottom.in').find('ul.toolmenu li').eq(i).remove();
                    }
                  }
                } else {
                  $('.popover.fade.bottom.in').find('ul.toolmenu').append($('<li class= "toolmenu filterdata"><hr class="toolmenu" /></li>'));
                  $('.popover.fade.bottom.in').find('ul.toolmenu').append(newFavitor);
                }
              }
              $('.popover.fade.bottom.in li').css("list-style-type", "none");
              $('#newFavoriteName').val('');
              $('#searchbox').val('');
              if ($('.popover.fade.bottom.in ul.toolmenu').innerHeight() >= 200) {
                $('.popover.fade.bottom.in ul.toolmenu').css({ 'height': '200px', 'overflow-y': 'scroll' });
              }
            });
            $('.popover.fade.bottom.in').on('click', 'span.filterdata span.glyphicon-star-empty', function (e) {
              var filterid = $(this).closest('span.filterdata').attr('filterid');
              ChangeFilterFavorite(filterid, true);
              return false;
            });
            $('.popover-content #searchFilter').on('input', function () {
              GetSavedFilters($('#filterOptions'), $('.popover-content #searchFilter').val());
            });
          }
        })
        $('body').on('click', function (e) {
          $('[data-toggle=popover]').each(function () {
            if (
              $(this).attr("aria-describedby")
              && !$(this).is(e.target)
              && $(this).has(e.target).length === 0
              && $('.popover').has(e.target).length === 0
            ) {
              $(this).popover("destroy");
            }
          });
        })
      });
 
 
实现效果如下:

使用Bootstrap Popover实现一个弹框上三角形的代码记录的更多相关文章

  1. popover带箭头弹框

    我们先来看一下效果吧: 分析:这个带箭头的弹框其实是一个控制器,通过Modal方式展现,但跟传统模态方式效果不一样,我们一眼就能看出. Xib方式实现popover: 1.segue的时候选择Pres ...

  2. WPF 如何自定义一个弹框

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 简述: 手工以原生Grid的方式,自定义了一个仿弹窗效果,优点可以自定义,缺点需要自己实现以及维护整个弹窗的效 ...

  3. vue+elementui 新增和编辑如何实现共用一个弹框

    //html代码: //按钮 <el-button type="primary" size="medium" @click="addEquipm ...

  4. vue封装一个弹框组件

    这是一个提示框和对话框,例:   这是一个组件 eject.vue <template> <div class='kz-cont' v-show='showstate'> &l ...

  5. js,ajax,layer笔记(弹出层,在弹出一个弹框)

    整体认识: 因为作用域的问题,js 在页面初次加载时已近加载好了,所以要有第二次弹窗的效果,必须得在第一次成功之后再次让他加载js 代码: /*shaun*/showdetailsPag: funct ...

  6. bootstrap弹框

    http://v3.bootcss.com/javascript/#modals 参考bootstrap官网 模态框做php后端 前端一直不行,但是很多时候 用到ajax都要用到弹框,一直在代码里面找 ...

  7. iOS 可高度自定义的底部弹框

    技术: iOS Objective-C   概述 一个可以让开发者通过编写 tableView 的内容随心所欲的定制自己想要的底部弹框 详细 代码下载:http://www.demodashi.com ...

  8. 弹框alertView

    // 创建一个弹框UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@“标题” message:@“显示的具体内容” delegate:s ...

  9. 自定义 popWindow弹框 工具包

    前言:因为Android 没有像IOS一样的ActionSheet,虽然在github上看到有一些类似ActionSheet的库,总觉得不好用,不如自己写一个弹框通用类,样式全部自已来多好. Step ...

随机推荐

  1. python+selenium+unnittest框架

    python+selenium+unnittest框架,以百度搜索为例,做了一个简单的框架,先看一下整个项目目录结构 我用的是pycharm工具,我觉得这个工具是天使,超好用也超好看! 这些要感谢原作 ...

  2. Pytest运行测试用例的多种方式和调试

    测试用例上方使用多个fixtures叠加时,是从下往上进行fixtures调用的.如果是 @pytest.mark.usefixtures('action','a','action2')这种形式,是从 ...

  3. C#操作Word Aspose.Words组件介绍及使用—基本介绍与DOM概述

    1.基本介绍 Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务.Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XP ...

  4. @Transactional(readOnly=true) in Spring

    http://www.skill-guru.com/blog/2010/12/19/transactionalreadonlytrue-in-spring/ @Transactional(readOn ...

  5. [OpenCV] Samples 14: kalman filter

    Ref: http://blog.csdn.net/gdfsg/article/details/50904811 #include "opencv2/video/tracking.hpp&q ...

  6. ActiveMQ JMS 项目 基于 Maven 搭建 部署

    JAVA版本: IntellJ IDEA 版本: IntelliJ IDEA 2017.2Build #IU-172.3317.76, built on July 15, 2017Licensed t ...

  7. [Linux] ssh-key 公钥文件格式

    SSH 协议(Secure Shell 协议)最初在 1995 年由芬兰的 Tatu Ylönen 设计开发,由 IETF(Internet Engineering Task Force)的网络工作小 ...

  8. M0 M4关于库函数的讲解(以时钟为例)

    #define CLK_PWRCON_PD_WAIT_CPU_Pos 8 #define CLK_PWRCON_PD_WAIT_CPU_Msk (1ul << CLK_PWRCON_PD_ ...

  9. RabbitMQ----整理

    ------------------------------------------------------------------RabbitMQ-------------------------- ...

  10. 记一次treegrid checkbox 选择问题

    最后选择 select 方法来实现 checkRow checked 属性也不行 getChecked 方法并不能取到这两种方法的行数据