【问题标题】:How to call jquery function after calling wicket ajax submit button调用wicket ajax提交按钮后如何调用jquery函数
【发布时间】:2011-04-20 15:54:57
【问题描述】:

我有一个带有提交按钮的表单,但这是由 Wicket 的 AjaxButton 类实现的。当 HTML 页面呈现时,Wicket 会为该提交按钮动态保留一个 javascript onClick 方法。

我想在 Wicket 的 onClick 方法完成后使用 JQuery 做一些操作。我该怎么做?

【问题讨论】:

    标签: java javascript jquery wicket


    【解决方案1】:

    如果你做得对,使用 JQuery 或任何其他 JavaScript 库就像在检票口中的魅力一样。

    首先,您需要确保该库存在。您通常使用JavascriptPackageResource 来执行此操作。

    add(JavascriptPackageResource.getHeaderContribution("/path/to/jquery.js"));
    

    (将 this 放入构造函数或动态初始化器或 onBeforeRender()

    那么,你需要确保

    1. 您的组件有一个 id(使用 Component.setOutputMarkupId(true))并且
    2. 您在 jQuery 函数(总是通过Component.getMarkupId() 检索 id)

    这里有一个按钮在点击时变为蓝色的示例:

    add(new AjaxButton("id"){
    
        private static final long serialVersionUID = 1L;
    
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form){
            target.appendJavascript(
                "$('#" +getMarkupId() +"').css({'background':'blue'})");
        }
    }.setOutputMarkupId(true));
    

    【讨论】:

    • 感谢详细解释!
    【解决方案2】:
    protected void onClick(AjaxRequestTarget target){
       target.appendJavascript("alert('hello');");
    )
    

    【讨论】:

    • 如果您传递任何 JQuery 函数名称,则在 appendJavascript 中,它不起作用。对于像警报这样的简单 javascript 是可以的。
    • 如果它不起作用,你可能做错了什么。它应该那样工作。 (+1)
    猜你喜欢
    • 2011-09-05
    • 2020-01-20
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多