我的绑定功能:
$searchInput.bind('blur', function() {
$searchResults.remove();
}
但是,如果我单击 $searchResults 中的链接,则不会发生这种情况。现在 $searchResults 在我可以单击链接之前被删除。我该怎么做?
我的绑定功能:
$searchInput.bind('blur', function() {
$searchResults.remove();
}
但是,如果我单击 $searchResults 中的链接,则不会发生这种情况。现在 $searchResults 在我可以单击链接之前被删除。我该怎么做?
您可以简单地在鼠标悬停时设置一个标志$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)
。
想到的一种选择是延迟$.remove()
调用的执行,如下所示:
$searchInput.bind('blur', function() {
setTimeout(function() {
$searchResults.remove();
}, 100);
}
$searchInput.find('a').on('click', function() {
$searchResults.remove();
});