【发布时间】:2011-10-26 17:40:50
【问题描述】:
我知道这是一个奇怪的问题,所以我基本上是在说以下内容。我有这个:
$("#dialog-areyousuremodal").dialog({
resizable: false,
height: 120,
modal: true,
buttons: {
"Yes": function() {
$(this).dialog("close");
// more stuff coming soon
},
"No": function() {
$(this).dialog("close");
}
}
}).end().centerFixed();
<div class="hidden" id="dialog-areyousuremodal" title="Delete Confirmation">
<p>Are you sure you want to delete this row?</p>
</div>
我已经创建了一个自定义函数来扩展 jquery,如下所示:
(function($){
$.fn.extend({
centerFixed: function () {
return this.each(function() {
$(this).end();
$(this).css({position:"fixed"});
$(this).css("top", (($(window).height() - $(this).outerHeight()) / 2) + "px");
$(this).css("left", (($(window).width() - $(this).outerWidth()) / 2) + "px");
});
}
});
})(jQuery);
我的目标是替换 .end().centerFixed();只需 .centerFixed();。如您所见,我尝试将 .end() 放入自定义函数中,但这不起作用。我试图避免将 .end() 放在对话框的末尾或将 .centerFixed() 放在新的一行。
对这件事有什么想法吗?
【问题讨论】:
-
我摸不着头脑,想不出为什么你会想要这样做。你能解释一下为什么你不能使用
end(),可能有更简单的解决方案? -
如果你问为什么我需要在运行我的函数之前结束链:原因是因为在我更改 css 之前需要创建 jqueryui 的对话框窗口。
-
如果您问为什么我需要它来工作而不必键入 end() 或转到换行符,那是因为我的队友只是希望它以这种方式工作。 (我知道,这很疯狂,但是嘿......我被投票了)
标签: jquery dialog position modal-dialog