2012-06-18 74 views
0

我想在我的项目中使用JGrowlFeedbackPanel组件。这是JGrowl插件(JQuery)的检票。我从一个maven的仓库中获得了它。JGrowlFeedbackPanel选项无法正常工作

ResourceReference cssMenuRef = new ResourceReference(HomePage.class, "style_menu.css"); 
add(CSSPackageResource.getHeaderContribution(cssMenuRef)); 

JGrowlFeedbackPanel feedbackPanel = new JGrowlFeedbackPanel("feedbackPanel", new ErrorLevelFeedbackMessageFilter(FeedbackMessage.WARNING)); 
add(feedbackPanel); 
Options errorOptions = new Options(); 
errorOptions.set("header", "Error"); //works 
errorOptions.set("sticky", true); //works 
errorOptions.set("position", "center"); //doesn't work 
errorOptions.set("theme", "feedback"); //doesn't work 
error("TEST!"); 
feedbackPanel.setErrorMessageOptions(errorOptions); 

.feedback { 
color: #ff0000; 
background-color: #FFFFFF !important ; 
width: 400px; 
} 

我想改变jGrowl的默认位置和颜色,但它们根本不会改变。我可以在我的css文件中使用!important声明,但我认为这不是一个好主意。我会感谢任何建议。谢谢!

回答

0

对于位置,jGrowl明确表示,它的文档中:

这必须在默认设置被改变之前启动方法是 调用。

链接:jGrowl

- >据的源代码我在这里找到: JGrowlFeedbackMessage.java 这里: JGrowlFeedbackPanel.java 这可能无法正常工作是做的方式,因为你将不得不往里走“jquery.jgrowl.js”修改位置默认...

另外我不明白为什么jGrowl选项不能在JS中完全扩展。

也许更好的建议是使用jquery通知程序,构建自己的面板并包装调用以通过target.appendJavaScript()方法触发通知。举例wicket6:

public void showExpiringNotification(final String title, final String message, final int expiringSpeed) { 
     AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class); 
     if (target != null) { 
     target.appendJavaScript("$('#container').notify('create','error',{title: '" + title + "', text: '" + message 
       + "' },{expires: " + expiringSpeed + "})"); 
     } 
    } 

如果需要的话我可以给我的博客更详细的例子...

0

我注意到两件事情今天有一次我跟WicketStuff的jGrowl面板集成。

  1. 它总是会错过我的第一条消息,除非在页面上显示任何反馈消息之前先调用$ .jGrowl()。 这仅在IE10中受到影响,请参阅https://github.com/stanlemon/jGrowl/issues/17
  2. 随附的Options类如果将它们作为字符串传递,则喜欢在选项周围放置单引号。所以确保你使用新的Interger(x)或其他类型的对象。

否则,这是一个很好的UI添加。