這就是你要找的。當blur事件被觸發時,你可以訪問被聚焦的元素,然後你可以檢查元素的id以查看它是否與div上的id匹配。如果不匹配,則刪除div。
$("#myText").blur(function(e){
var target = e.originalEvent.explicitOriginalTarget||document.activeElement;
if ($(target).closest("#myDiv").length == 0 && target.id != "myDiv")
$("#myDiv").remove();
});
下面是一個簡單的例子,我把一起jsbin:http://jsbin.com/iwari3/10 讓我知道,如果這是你在找什麼
更新 由於原來的版本無法在Chrome中工作,我決定採取不同的方法,似乎在IE/FF/Chrome中工作。
var $myDiv = $("#myDiv"),
$myText = $("#myText");
$myText.blur(function(e){
if (!$myDiv.data("focused"))
$myDiv.remove();
$myDiv.data("focused", false);
});
$myDiv.mousedown(function(e){
$(this).data("focused", true)
});
這個新方法現在將焦點放在mousedown上的#myDiv上,它在blur事件之前被觸發。在文本框的模糊中,我們檢查是否設置了焦點位。然後將關注的位重置爲false,以處理多次點擊進入和退出文本框的情況。
這裏是一個更新的jsbin.com例如:http://jsbin.com/iwari3/11
你說的是一個點擊大概有焦點事件?這是不一樣的 – 2010-11-19 15:29:44