消失div onblur

时间:2012-05-18 09:52:17

标签: javascript jquery html

HTML

<input type="text" id="match1">
<div id="divf">It is a div which has a dark future</div>
<button>Not Remove</button>

和脚本

$(function(){
    $("input").blur(function()
    {
       $("#divf").remove(); 
    });
});

现在从代码中可以清楚地看到我想在输入模糊时删除div。但是如果有人点击按钮我不想删除div。我不知道该怎么做。可以有人解决这个问题

4 个答案:

答案 0 :(得分:5)

您可以在.blur()中设置超时,然后在单击按钮时将其清除。

var to = false;

$('input').blur(function() {
    // start the timer
    to = setTimeout('removeDiv', 200);
});

$('button').click(function() {
    // if the timer is still running, clear it
    to && clearTimeout(to);
});

function removeDiv()
{
    $("#divf").remove();
    // reset timer
    to = false;
}

当焦点从输入直接转到按钮(点击它)时,清除定时器并且不删除div。

答案 1 :(得分:0)

使用此代码代替您的代码

$(function(){
    $("#match1").blur(function()
    {
       $("#divf").remove(); 
    });
});

答案 2 :(得分:0)

如果你想只放置id为match1的文本字段,那么只有当字段有蓝色时才会删除div

$(function(){

   var isButtonClicked = false;
   $('button').one('click', function(){
      isButtonClicked = true;
   });

    $("#match1").blur(function()
    {
       if(!isButtonClicked)
            $("#divf").remove(); 
    });
});

如果你想只是输入文字,那么div将在每个文本框的蓝色上删除

    $(function(){
       var isButtonClicked = false;
       $('button').one('click', function(){
      isButtonClicked = true;
    });

    $("input[type=text]").blur(function()
        {
           if(!isButtonClicked) 
               $("#divf").remove(); 
        });
    });

答案 3 :(得分:0)

我编辑了@Adil的答案,得到了我想要的东西

$(function(){
       var isButtonClicked = false;
       $('button').one('mousedown', function(){
      isButtonClicked = true;
    });

    $("input[type=text]").blur(function()
        {
           if(!isButtonClicked) 
               $("#divf").remove();
               else isButtonClicked = false;
        });
    });