首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使虹膜的颜色选择器在没有对焦时消失

使虹膜的颜色选择器在没有对焦时消失
EN

Stack Overflow用户
提问于 2014-10-29 18:29:19
回答 2查看 346关注 0票数 1

我的HTML:

代码语言:javascript
复制
<input type="text" id='color-picker' value="#bada55" /><br />

我的抄本:

代码语言:javascript
复制
jQuery(document).ready(function($){
    $('#color-picker').iris();
    $('#color-picker').blur(function() {
        $('#color-picker').iris('hide');
    });
    $('#color-picker').focus(function() {
        $('#color-picker').iris('show');
    });
});

我的JSFiddle:http://jsfiddle.net/vdmw1knL/3/

如果没有模糊/焦点的东西,如果你点击文本输入,颜色选择器就会出现,永远不会消失。对于模糊/焦点的东西,如果你点击颜色选择器,它就会出现,但如果你真的选择了一种颜色,它就会消失。

我希望颜色选择器离开,如果它所附加的文本输入或html本身不对焦。点击颜色选择器内的颜色不应该使它消失。不幸的是,我不知道该怎么做。有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 19:08:06

您可以通过检查是在颜色选择器内单击还是在外部单击,如下所示:

代码语言:javascript
复制
jQuery(document).ready(function($) {
  $('#color-picker').iris();
  $('#color-picker').blur(function() {
    setTimeout(function() {
      if (!$(document.activeElement).closest(".iris-picker").length)
        $('#color-picker').iris('hide');
      else 
        $('#color-picker').focus();
    }, 0);
  });
  $('#color-picker').focus(function() {
    $('#color-picker').iris('show');
  });
});
代码语言:javascript
复制
<link href="https://raw.githubusercontent.com/Automattic/Iris/master/src/iris.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<script src="http://automattic.github.io/Iris/javascripts/iris.min.js"></script>
<input type="text" id='color-picker' value="#bada55" />
<br />
<div style="position: relative" id="#test">zzz</div>

票数 5
EN

Stack Overflow用户

发布于 2014-10-29 19:06:32

代码语言:javascript
复制
jQuery(document).ready(function($) {
  $('#color-picker').iris();
  $('#color-picker').focus(function() {
    $('#color-picker').iris('show');
    $('.iris-picker').addClass('active');
  });


  $(document).on('click', function(event) {
    var clicked = $(event.target),
      $iris = $('.iris-picker');

    if ($iris.hasClass('active') && !clicked.is('.iris-picker') && !clicked.is('#color-picker')) {
      $('#color-picker').iris('hide');
      $iris.removeClass('active');
    }
  });
});
代码语言:javascript
复制
<link href="https://raw.githubusercontent.com/Automattic/Iris/master/src/iris.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<script src="http://automattic.github.io/Iris/javascripts/iris.min.js"></script>
<input type="text" id='color-picker' value="#bada55" />
<br />
<div style="position: relative" id="#test">zzz</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26638034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档