0

所以 - jQuery UI 库。有一个对话框组件。该组件还有一个“标题”选项。我将如何覆盖 jQuery 的默认功能,以便每当我为对话框设置新标题时 - 它会在它前面添加“xxx”?

4

3 回答 3

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/

或者,如果您想扩展对话框小部件本身,请查看此问题的答案(如何扩展现有的 jQuery UI 小部件? )。

于 2013-10-16T10:44:42.037 回答
0

您可以覆盖该jQuery.dialog方法

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

但是,我不知道您在此方法中使用了哪些其他选项。如果您为您的问题提供一些代码,我将更新我的答案。

于 2013-10-16T10:43:49.643 回答
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>
于 2013-10-16T10:45:24.203 回答