1

我的绑定功能:

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

但是,如果我单击 $searchResults 中的链接,则不会发生这种情况。现在 $searchResults 在我可以单击链接之前被删除。我该怎么做?

4

3 回答 3

2

您可以简单地在鼠标悬停时设置一个标志$searchResults

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

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

演示:http: //jsfiddle.net/sUA4D/

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

于 2013-02-01T18:29:57.543 回答
1

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

$searchInput.bind('blur', function() {
    setTimeout(function() {
        $searchResults.remove();
    }, 100);
}
于 2013-02-01T18:25:15.190 回答
0
$searchInput.find('a').on('click', function() {
  $searchResults.remove();
});
于 2013-02-01T18:26:24.873 回答