2013-11-04 79 views
0

我正在使用JQuery UI對話框並呈現下面的HTML。我希望按鈕被包裹在span標籤中。在調用對話時有沒有簡單的方法。更改jQuery UI對話標題欄HTML

<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> 
    <span class="ui-dialog-title" id="ui-id-20"> 
    </span> 
    <button title="close" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false"> 
    </button> 

由於

+1

這個問題與對話標題有什麼關係(如你的帖子標題所示)? – melancia

+0

使用'create'事件來查找按鈕並將其包裹 – charlietfl

回答

0

是的,你可以做這樣的事情(Example

var dlg = $('#d1').dialog({ 
    "title":"Dialog", 
    "buttons":{ "OK" : function(){ $(this).dialog('close'); } } 
}); 

// Find buttons and wrapp then with span 
dlg 
.closest('div.ui-dialog') 
.find('button').wrap('<span class="btnWrapper"></span>'); 

順便說一句,你可以check this too,如果你想這樣的事情,可能是有用的,它需要的jQuery UI version - 1.10.0

+0

偷偷摸摸的投票人,給我一個理由,這樣我就可以向你學習。 –

0

jQuery UI documentation,可以事件綁定到dialogopen事件:

$('#YourDialog').one('dialogopen',function(e,ui){ 
    $('button[title="close"]').wrap('<span></span>'); 
}); 

通知使用.wrap()函數,它允許包裝與選擇的要素任何您選擇的HTML。我還使用了.on()而不是.one(),以便該事件不會觸發多次(否則它會在每次打開時都打包該元素)。