如果单击链接,请停止绑定“模糊”

时间:2013-02-01 18:22:41

标签: javascript javascript-events jquery

我的绑定功能:

$searchInput.bind('blur', function() {
  $searchResults.remove();
}

但如果我点击$ searchResults内的链接,就不会发生这种情况。现在,在我点击链接之前删除了$ searchResults。 我该怎么做?

3 个答案:

答案 0 :(得分:2)

您可以在$searchResults上的鼠标上设置一个标记:

var isOver = false;
$searchInput.bind("blur", function(e) {
    if (!isOver) {
        $searchResults.remove();
    }
});

$searchResults.hover(function() {
    isOver = true;
}, function() {
    isOver = false;
});

DEMO: http://jsfiddle.net/sUA4D/

您可以通过元素数据执行相同操作,例如设置$searchResults.data("isOver", true)

答案 1 :(得分:1)

我想到的一个选择是延迟执行$.remove()调用,如下所示:

$searchInput.bind('blur', function() {
    setTimeout(function() {
        $searchResults.remove();
    }, 100);
}

答案 2 :(得分:0)

$searchInput.find('a').on('click', function() {
  $searchResults.remove();
});