我想在输入后添加div(悬停或焦点),然后如果我单击新的div,则让div显示出来以单击另一个元素或焦点

时间:2019-04-27 08:30:07

标签: javascript jquery html5

我具有包括两种类型的信息的形式,第一类是新数据,第二类来自数据库“此类型由属性preDefined定义” 我想在输入后显示具有预定义属性的搜索图标,仅当我将焦点放在或悬停在输入上时“此图标,我用它来显示新的模式以从数据库中选择数据”,因此,如果我单击了icont按钮,则该图标将显示如果我单击另一个,则删除图标

这是Jquery函数

     $('input').each(function(){
       if ($(this).attr('preDefined') === 'preDefined') {
         $(this).focus(function(){
           $(this).after(
           '<button type="button" class="preDefinedSearch" id="preDefinedSearch" data-toggle="modal" data-target="#exampleModalCenter"><i class="fas fa-search"></i></button>'
           );
         })
         .blur(
           jQuery('#preDefinedSearch').click(function(){
              $(this).data('clicked', true);
            }));
            if(jQuery('#preDefinedSearch').data('clicked')) {

                //clicked element, do-some-stuff
            }
            else {
              $("#preDefinedSearch").remove();
            }

         $(this).hover(function(){
           $(this).after(
             '<button type="button" class="preDefinedSearch" id="preDefinedSearch" data-toggle="modal" data-target="#exampleModalCenter"><i class="fas fa-search"></i></button>'
           );
         },
         function(){
           $("#preDefinedSearch").remove();
         })
       }

     });

这是我的第一个代码,添加和删除按钮效果很好,但是当我单击按钮时,按钮被删除,模态未打开

       // add search div pre define fields
       $('input').each(function(){
         if ($(this).attr('preDefined') === 'preDefined') {
           // NOTE: add button on focus of preDefined input
           $(this).focus(function(){
             $(this).after(
               '<button type="button" class="preDefinedSearch" id="preDefinedSearch" data-toggle="modal" data-target="#exampleModalCenter"><i class="fas fa-search"></i></button>'
             );
           })
           // NOTE: remove button if no focus of preDefined input
           .blur(function(){
             $("#preDefinedSearch").remove();
           });
         }
       });

1 个答案:

答案 0 :(得分:0)

已从JQuery API文档中阅读了这些文章。 .focus()和.blur()可用于在某个元素被单击或单击时被显示或从DOM中删除元素。

https://api.jquery.com/focus/

https://api.jquery.com/blur/