我有一個提醒div
,它在用戶單擊鏈接時顯示。現在我想要做的就是當有人在它外面點擊時隱藏那個div
。它默認有一個fadeoff
事件附加,但我希望用戶能夠通過點擊其他地方隱藏該div。如何僅在特定元素可見時觸發事件
我試着把$('body').click
放在函數調用中,但它不起作用。請幫幫忙,這裏是我的javascript
var messageDiv = $('<div id="cannotDoDiv"></div>');
$('body').append(messageDiv);
function appendDiv(this_element,msg)
{
var pos = this_element.offset();
var width = this_element.width();
messageDiv.css({
left: (pos.left - 20) + 'px',
top: pos.top + 30 + 'px'
});
$('#cannotDoDiv').fadeOut();
$('#cannotDoDiv').html(msg).show().delay(1000).fadeOut();
$('body').click(function(){
$('#cannotDoDiv').hide();
});
}
$("span#selfLike").click(function(){
appendDiv($(this),'You cannot like your own post!');
});
當我從功能$("span#selfLike").click
工作正常刪除
$('body').click(function(){
$('#cannotDoDiv').hide();
});
,否則就不是被解僱。
這正是我不想做的事情,因爲這會將'click'事件附加到'document'這個頁面上通常會有許多點擊,每次這個事件都會被觸發,這在某種意義上無用的,我想要的只是綁定一個事件時,div是可見的 – Sachin 2012-01-28 20:51:56
@Sachin看到我上面的更新代碼..它使用.one和fadeIn回調。 – 2012-01-28 21:04:05