2013-10-16 241 views
0

所以 - jQuery UI庫。有一個對話框組件。這個組件還有一個「標題」選項。我如何重寫jQuery的默認功能,以便每當我爲對話設置一個新標題時 - 它在它前面添加「xxx」?Jquery覆蓋默認功能

+1

它只是一個'具有title屬性div'標籤,也許我不明白的問題? – SpaceBison

+1

您可以提供代碼示例,包括html和javascript代碼嗎? – ovunccetin

+0

不能理解Eriks親愛的問題! – Neel

回答

1

我會寫一個輔助方法來設置標題和調用來代替:

function setTitleWithPrefix(selector, title) { 
    $(selector).dialog('option', 'title', 'xxx' + title); 
} 

你甚至可以將其創建爲一個jQuery插件:

$.fn.dialogTitleWithPrefix = function(title) { 
    this.each(function() { 
     $(this).dialog('option', 'title', 'xxx' + title); 
    }); 
}; 

這可以被稱爲:

$('.myDialog').dialogTitleWithPrefix('New Title'); 

兩種方法的工作示例 - http://jsfiddle.net/kReA5/1/

或者,如果要擴展對話框小部件本身,請查看此問題的答案(How to extend an existing jQuery UI widget?)。

0

可以重寫jQuery.dialog方法

var oldDialog = jQuery.fn.dialog; 
jQuery.fn.dialog = function(title, options, otherStuff) { 
    title = 'xxx' + title; 
    return this.oldDialog(title, options, otherStuff); 
}); 

不過,我不知道你用這種方法使用的其他選項。如果你提供一些代碼給你的問題,我會更新我的答案。

0

嗯,這會使你的對話框:

<div id="dialog" title="Your title"> 
    <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> 
</div> 

它將與所選標題使其但是如果你現在也想在前面加上XXX的標題,您需要更改標題該div後屬性值。

要做到這一點使用下面的腳本:

<script> 
    var title = $("#dialog").getAttribute("title"); // This will return "YOUR TITLE" 

    // Now we change the title to xxx YOUR TITLE 
    $("#dialog").attr("title", "XXX" + title); 
</script>