在 jQuery 中覆盖显示功能使 PrimeFaces 咆哮保持可见
in jQuery overwritten show function makes PrimeFaces growl stay visible
我需要覆盖特定元素的显示功能。到目前为止效果很好。但是有一个邪恶的副作用:我的咆哮元素在显示后仍然可见。控制台中没有日志错误,其他东西工作正常。它也不会卡在任何地方。它只是在显示后不再隐藏。
这里是我的 jQuery 函数:
jQuery(function($) {
jQuery.fn.oldshow = jQuery.fn.show;
jQuery.fn.show = function() {
//Use old function
return jQuery(this).oldshow();
};
});
这里是咆哮元素:
<p:growl id="growl" showDetail="true" />
没有 jQuery 函数它按预期工作并再次隐藏。
如果能得到一些小费或解决方案就太好了。
我已经尝试将其替换为:
jQuery(function($) {
var oldshow = $.fn.show;
$.fn.show = function(args) {
var t = $(this);
return oldshow.apply(t, arguments);
};
});
没有区别
覆盖 primefaces 函数而不是 jquery 函数
PrimeFaces.widget.Growl.prototype.show = (function() {
var oldFunction = PrimeFaces.widget.Growl.prototype.show;
return function() {
//some logic
//use old function
return oldFunction.apply(this, arguments);
};
})();
我需要覆盖特定元素的显示功能。到目前为止效果很好。但是有一个邪恶的副作用:我的咆哮元素在显示后仍然可见。控制台中没有日志错误,其他东西工作正常。它也不会卡在任何地方。它只是在显示后不再隐藏。
这里是我的 jQuery 函数:
jQuery(function($) {
jQuery.fn.oldshow = jQuery.fn.show;
jQuery.fn.show = function() {
//Use old function
return jQuery(this).oldshow();
};
});
这里是咆哮元素:
<p:growl id="growl" showDetail="true" />
没有 jQuery 函数它按预期工作并再次隐藏。
如果能得到一些小费或解决方案就太好了。
我已经尝试将其替换为:
jQuery(function($) {
var oldshow = $.fn.show;
$.fn.show = function(args) {
var t = $(this);
return oldshow.apply(t, arguments);
};
});
没有区别
覆盖 primefaces 函数而不是 jquery 函数
PrimeFaces.widget.Growl.prototype.show = (function() {
var oldFunction = PrimeFaces.widget.Growl.prototype.show;
return function() {
//some logic
//use old function
return oldFunction.apply(this, arguments);
};
})();