这是一个非常有趣的问题!我以前从未使用过Font Awesome 图标,但这似乎是一个非常有趣的项目。
jqGrid 目前没有对 Font Awesome 图标的直接支持,但我准备了一个简单的演示,展示了如何用 Font Awesome 中的相应图标替换标准的 jQuery UI 导航器图标。
缩放页面后,可以看到与原始导航器图标的主要区别。我在以 400% 缩放显示的导航器下方包括:
使用 jQuery UI 图标的原始导航器
带有 Font Awesome 图标的导航器:
我使用的代码非常简单。而不是使用
$grid.jqGrid("navGrid", "#pager", {view: true});
我用了
$grid.jqGrid("navGrid", "#pager", {editicon: "icon-pencil",
addicon: "icon-plus", delicon: "icon-trash", searchicon: "icon-search",
refreshicon: "icon-refresh", viewicon: "icon-file",view: true});
$("#pager .navtable .ui-pg-div>span").removeClass("ui-icon");
我添加了 CSS
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div>span { margin: 0 5px; font-size: 12px; }
我认为可以将更多的 jQuery UI 图标替换为 Font Awesome 图标,但这并不是很简单。我会更多地考虑这个问题,并会联系 jqGrid 的开发者(Tony Tomov)考虑让 jqGrid 对 Font Awesome 图标更友好,这样就可以非常简单地切换到 Font Awesome 图标。
更新:我添加了允许顶部替换寻呼机中更多图标的代码:
var $pager = $grid.closest(".ui-jqgrid").find(".ui-pg-table");
$pager.find(".ui-pg-button>span.ui-icon-seek-first")
.removeClass("ui-icon ui-icon-seek-first")
.addClass("icon-step-backward");
$pager.find(".ui-pg-button>span.ui-icon-seek-prev")
.removeClass("ui-icon ui-icon-seek-prev")
.addClass("icon-backward");
$pager.find(".ui-pg-button>span.ui-icon-seek-next")
.removeClass("ui-icon ui-icon-seek-next")
.addClass("icon-forward");
$pager.find(".ui-pg-button>span.ui-icon-seek-end")
.removeClass("ui-icon ui-icon-seek-end")
.addClass("icon-step-forward");
结果得到以下寻呼机:
代替
更新 2:更改最小化图标的代码看起来更完整。最初应该首先更改图标
$grid.closest(".ui-jqgrid")
.find(".ui-jqgrid-titlebar>.ui-jqgrid-titlebar-close>.ui-icon-circle-triangle-n")
.removeClass("ui-icon ui-icon-circle-triangle-n")
.addClass("icon-circle-arrow-down");
然后在每次单击图标后更改它:
onHeaderClick: function (gridstate) {
if (gridstate === "visible") {
$(this.grid.cDiv).find(">.ui-jqgrid-titlebar-close>span")
.removeClass("icon-circle-arrow-up ui-icon-circle-triangle-n")
.addClass("icon-circle-arrow-down");
} else if (gridstate === "hidden") {
$(this.grid.cDiv).find(">.ui-jqgrid-titlebar-close>span")
.removeClass("icon-circle-arrow-down ui-icon-circle-triangle-s")
.addClass("icon-circle-arrow-up");
}
}
另外一个需要添加CSS
.ui-jqgrid .ui-jqgrid-titlebar-close>span { margin: 0 3px; font-size: 16px; }
.ui-jqgrid .ui-jqgrid-titlebar-close { text-decoration: none; }
为了修复排序图标,我使用了代码
var $sortables = $grid.closest(".ui-jqgrid")
.find(".ui-jqgrid-htable .ui-jqgrid-labels .ui-jqgrid-sortable span.s-ico");
$sortables.find(">span.ui-icon-triangle-1-s")
.removeClass("ui-icon ui-icon-triangle-1-s")
.addClass("icon-sort-down");
$sortables.find(">span.ui-icon-triangle-1-n")
.removeClass("ui-icon ui-icon-triangle-1-n")
.addClass("icon-sort-up");
和 CSS
.ui-jqgrid .ui-icon-asc { height: auto; margin-top: 0; }
.ui-jqgrid .ui-icon-asc, .ui-jqgrid .ui-icon-desc {
height: auto; margin-top: 0; margin-left: 5px;
}
.ui-jqgrid .s-ico>.ui-state-disabled, .s-ico>.ui-state-disabled { padding: 0; }
结果将得到以下结果:
更新 3:在下一个演示中,可以找到更完整的 jQuery UI 图标替换为 Font Awesome 图标。
更新 4:答案为 Font Awesome 版本 4.x 提供了解决方案。