首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在计算器包装外部单击时关闭计算器

在计算器包装外部单击时关闭计算器
EN

Stack Overflow用户
提问于 2012-08-08 14:54:13
回答 3查看 185关注 0票数 0

我有一个计算器,它打开的重点是文本框。这个计算器有外包装和子div容器,其中有计算器按钮。

我的问题是,我只想在calculator包装器之外单击鼠标来关闭计算器。但是我使用$('html').bind('click', function ()....的这段代码在我每次点击计算器按钮时都会发生,上面的代码范围只在计算器包装器上,而不是在包含计算器按钮的子div容器上。

计算器包装器### - <div class="calc-wrapper">

计算器按钮### - <div class="calc-button-wrapper-operator">

代码语言:javascript
复制
<div class="calc-wrapper">
<div class="calc-button-wrapper-operator">
    <div class="calc-button">9</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">8</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">7</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">6</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">5</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">4</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">3</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">2</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">1</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">0</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">.</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">-</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">+</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">*</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">/</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">C</div>
</div>
<div class="calc-button-wrapper-operator">
    <div class="calc-button">=</div>
</div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-08 18:12:13

我找到了解决这个问题的办法。

代码语言:javascript
复制
var CurrCalculator = $(CalControl).parent();

    $($('html').not($(CurrCalculator))).bind('click', function (event) {...
   below this code to hide the current Calculator 
...});

第一行获取当前容器的实例。

期望此变量包含整个HTML正文。所以无论你点击这个区域的什么地方(var,CurrCalculator),你的计算器都是打开的。如果在外部单击,计算器将关闭。

票数 0
EN

Stack Overflow用户

发布于 2012-08-08 15:11:47

尝试:

代码语言:javascript
复制
$('body, .calc-wrapper').click(function (e){
   $('.calc-close').hide(); // or your code to clode
});

你可以删除正文,我添加了它,而你的包装器可能没有覆盖所有的网页。

票数 0
EN

Stack Overflow用户

发布于 2012-08-08 15:16:47

代码语言:javascript
复制
$('body').unbind('click.closeCalc').bind('click.closeCalc', function(event){
     if(!($(event.target).hasClass('calc-wrapper') || 
               $(event.target).parents('.calc-wrapper').length == 1){
           // code to hide the calculator here.
     }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11859168

复制
相关文章

相似问题

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