2013-02-28 44 views
0

所以在我的主頁上,我有一個自定義的工具提示,它只是一個隱藏了一些信息的div,當你選擇一個按鈕時,它會打開菜單。如果您單擊文檔中的任何其他位置,它將隱藏該div。該代碼看起來像這樣。Click Event - Main Document and Dialog jQuery

$(document).on("click", function() { 
    $("#supTooltip").fadeOut("fast", "linear"); 
}); 
$("#supervisorButton").on("click", function(e) { 
    e.stopPropagation(); 
    return false; 
}); 

單擊此項後,您可以單擊菜單中的多個不同選項。一個提出一個對話。在那個對話框中,我也有一個類似的濾鏡菜單。代碼看起來一樣,只是不同的ID被拉。

$(document).on("click", function() { 
    $("#filtersDiv").fadeOut("fast", "linear"); 
}); 
$("#filtersButton").on("click", function(e) { 
    e.stopPropagation(); 
    return false; 
}); 

我不能這樣做嗎?我試圖關閉點擊事件,但它似乎不起作用。我在代碼的第二次迭代上面使用了這個。

$(document).off("click"); 

任何幫助都會很棒。過去幾個小時,我一直在絞盡腦汁。

編輯1:

請求的jsfiddle。 http://jsfiddle.net/yDmAK/1/

這是有效的,但不同之處在於,menu2功能與menu1功能不在同一個文件中。該對話框使用加載事件將數據填充到單獨的文件中,以便從單獨的文件中提取數據。

這可能是導致問題或否?

+0

您可能需要鏈接到jsfiddle或在線示例。 – 2013-02-28 21:15:21

+0

我仍然不理解你的確切問題 – Evan 2013-02-28 21:16:24

+0

對不起,我不是網上的,所以我必須提供一個jsfiddle或圖片。 – Christopher 2013-02-28 21:17:08

回答

0

我決定在另一個線程上使用另一個user發佈的另一種方法。

$(document).mouseup(function (e) 
{ 
    var container = $("YOUR CONTAINER SELECTOR"); 

    if (container.has(e.target).length === 0) 
    { 
     container.hide(); 
    } 
}); 

這似乎是做伎倆,工作正常。