[英]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
來觸發工具提示。
所以現在我的問題是:如何防止在打開對話框時顯示工具提示?
我可以在工具提示的初始化中設置一個選項, 以便當焦點位於關閉按鈕上時不觸發工具提示嗎? 這將是最好的解決方案,因為只有一個地方需要調用工具提示,並且我必須更改一些東西。 實際上,我不想更改焦點,但是不想顯示工具提示。
我知道可以通過:tabbale
或autofocus
屬性完成此操作,但是還有另一種方法嗎? 我不想編輯項目中的所有對話框以添加新的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.