簡體   English   中英

如何防止打開對話框時顯示工具提示

[英]How to prevent tooltip from showing when dialog is opened

我必須遵循以下方案:

我的網站上有幾個對話框(有些是靜態的,有些是用ajax加載的內容創建的,有些是在頁面加載后創建的)。

舉一個例子:

$(".agreementcount_dialog").dialog({
    position: {
        my: "center center",
        at: "center center"
    },
    draggable: true,
    resizable: true,
    modal: false,
    width: 250,
    height: 300,
    close: function () {
        $(this).dialog("close");
    }
});

並且包含jQuery-UI tooltip

$('#main').tooltip();

每次打開對話框時,都會通過位於對話框關閉按鈕上的autofocus來觸發工具提示。

演示版

所以現在我的問題是:如何防止在打開對話框時顯示工具提示?

我可以在工具提示的初始化中設置一個選項, 以便當焦點位於關閉按鈕上時不觸發工具提示嗎? 這將是最好的解決方案,因為只有一個地方需要調用工具提示,並且我必須更改一些東西。 實際上,我不想更改焦點,但是不想顯示工具提示。

我知道可以通過:tabbaleautofocus屬性完成此操作,但是還有另一種方法嗎? 我不想編輯項目中的所有對話框以添加新的autofocus-element( 然后打開后無法再通過按Enter或Esc來關閉對話框 ),並且我希望保持工具提示的功能在對話框。

注意:並非在單擊事件中打開每個對話框。

我找到了一個簡單的解決方案來解決我的問題:

$('body').tooltip({ 
    items: ":not(.ui-dialog-titlebar-close)" 
});

這將從工具提示功能中排除對話框中的關閉按鈕,而不會影響自動對焦。

現在,沒有用於關閉按鈕的工具提示,但其余部分不受影響。

可以輕松擴展它並使用ajax生成的內容。

試試這個:有幫助嗎

$('.open').on('click', function(){
   $('.dialog').dialog('open');
   $(this).focus();
});

打開對話框后,您可能需要初始化工具提示,它可以解決問題,但是我不確定這是執行此操作的最佳方法。

無論如何,這是演示。 http://jsfiddle.net/utj47ty9/1/

 $(document).ready(function(){

   $('.dialog').dialog({autoOpen: false});
   $('.open').on('click', function(){
     $('.dialog').dialog('open');
     $('body').tooltip();
 });

 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM