我有一个使用jQuery和jQueryUI构建的网站。所有对话框都使用相同的效果进行显示和隐藏。但是我无法对jgGrid的editGridRow和viewGridRow方法创建的对话框设置效果。我想知道是否有任何东西可以为jqGrid创建的对话框添加显示/隐藏效果。
----更新
感谢Oleg处理jqGrid的伎俩。我已成功更改我的网站,以对对话框显示一致的效果。简而言之,我需要删除/更新对话框的内联样式,并且应该在效果之后创建。以下是一些代码:
$(function () {
var cssLeft;
var cssTop;
$.extend($.jgrid, {
showModal: function (h) {
if (cssLeft) {
h.w.css("left", cssLeft).css("top", cssTop);
}
h.w.show("fold", function() {
var htmlEditor = $("#item", h.w);
if (htmlEditor) {
htmlEditor.tinymce({
script_url: "/Scripts/tinymce.3.4.5/tiny_mce.js",
mode: "none",
theme: "advanced",
plugins: "autolink,lists,layer,advhr,advimage,advlink,emotions,inlinepopups,insertdatetime,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras",
theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2: "cut,copy,paste,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,forecolor,backcolor",
theme_advanced_buttons3: "hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,media,advhr,|,fullscreen",
theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,blockquote,pagebreak,|,insertfile,insertimage",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_resizing: true,
theme_advanced_statusbar: false
});
}
});
},
closeModal: function (h) {
if (!cssLeft) {
cssLeft = h.w.css("left");
cssTop = h.w.css("top");
}
h.w.css("left", "inherit").css("top", "inherit");
h.w.hide("blind").attr("aria-hidden", "true");
var htmlEditor = $("#item", h.w);
if (htmlEditor) {
if (htmlEditor.tinymce()) {
htmlEditor.tinymce().remove();
}
}
if (h.o) {
h.o.remove();
}
}
});
答案 0 :(得分:2)
这是一个很好的问题!
jqGrid内部使用jqModal,它将作为jqGrid的一部分(作为模块jqModal.js
)。要实现动画效果,您可以覆盖$.jgrid.showModal
和$.jgrid.closeModal
方法。
The demo使用以下代码
$.extend($.jgrid, {
showModal : function(h) {
h.w.show("slow");
},
closeModal : function(h) {
h.w.hide("slow").attr("aria-hidden", "true");
if(h.o) {h.o.remove();}
}
});
我认为您可以轻松修改上述功能的代码,以实现显示和隐藏您在网站上使用的相同效果。