Причина мне кажется неправильными эффектами наведения, включенными в jqGrid 4.1.0 для элемента <span>
с иконками сохранения и отмены:
onmouseover=jQuery(this).addClass('ui-state-hover');
onmouseout=jQuery(this).removeClass('ui-state-hover');
см. Исходный код jquery.fmatter.js .
Если я правильно понимаю проблему, добавление класса 'ui-state-hover' заменяет background-position
на 50% 50%
, поэтому значки диска (ui-icon-disk) или значок отмены (ui значок-отмена) больше не будет отображаться. Вместо этого в середине отображается фоновое изображение .
Поэтому я предлагаю просто удалить эффекты наведения внутри loadComplete
:
loadComplete: function() {
$("div.ui-inline-save > span.ui-icon-disk, div.ui-inline-cancel > span.ui-icon-cancel").each(function() {
this.onmouseover = null;
this.onmouseout = null;
});
}
См. демо .
ОБНОВЛЕНО: : Я нашел лучший способ исправить проблему. Сначала мы можем определить функции iconHoverFixed
и iconNotHoverFixed
следующим образом
var iconHoverFixed = function(e) {
jQuery(this).addClass('ui-state-hover');
jQuery('span',this).removeClass('ui-state-hover');
},
iconNotHoverFixed = function(e) {
jQuery(this).removeClass('ui-state-hover');
};
и тогда мы можем решить проблему зависания так:
loadComplete: function() {
$("div.ui-inline-save, div.ui-inline-cancel").each(function() {
this.onmouseover = iconHoverFixed;
this.onmouseout = iconNotHoverFixed;
});
}
Смотрите новую демонстрацию здесь или здесь .