当前位置: 首页 > 面试题库 >

将JavaScript事件实施到Wicket

羊舌青青
2023-03-14
问题内容

我是ria开发的新手,正在使用Ajax
Slider示例
。我不知道如何使用javascript事件。在此示例中,onValueChanged-
event是预先实现的。如何实现说onchange-或onSlider-event?

所有帮助,不胜感激!

public abstract class AjaxSlider extends WebMarkupContainer {

    private static final long serialVersionUID = 1L;

    public AjaxSlider(String id) {
            super(id);
            super.setOutputMarkupId(true);
    }
    public JQUIComponentBehaivor<SliderOptions> getSlideBehaviors() {
        List behaviors = getBehaviors();
        for(Object behavior : behaviors){
            if(behavior instanceof SliderBehavior)
                        return (SliderBehavior) behavior;
        }
        return null;
    }


    public abstract void onValueChanged(AjaxRequestTarget target,
                    int newValue);

    @Override
    protected void onInitialize() {
            super.onInitialize();
            AbstractDefaultAjaxBehavior ajaxBehavior =
                new AbstractDefaultAjaxBehavior() {
                    private static final long serialVersionUID = 1L;

                    @Override
                    protected void respond(AjaxRequestTarget target) {
                            String sliderValue = RequestCycle.get().getRequest()
                                            .getParameter("sv");
                            if (Utils.isNotBlank(sliderValue)) {
                                    onValueChanged(target, Integer.valueOf(sliderValue));
                            }
                    }
            };
            super.add(ajaxBehavior);
            super.add(new SliderBehavior(new SliderOptions()
                            .changeEvent(wicketAjaxGet(
                                            ajaxBehavior,
                                            new MapBuilder<String, Object>().add("sv",
                                                            js("ui.value")).build()))));
    }

}

问题答案:

您提供的示例为change事件添加了一个事件处理程序。此事件处理程序的作用是向上述ajaxBehavior定义发出GET请求。然后,该行为从GET参数中提取滑块值并调用onValueChanged

您可以向添加新的事件处理程序SliderOptions。例如:

.slideEvent(
    wicketAjaxGet(ajaxBehavior,
                  new MapBuilder<String, Object>()
                  .add("sv",  js("ui.value")).build()))));

每当用户移动滑块时,此处理程序都应调用ajax行为。



 类似资料:
  • 我在微服务和事件源方面是个新手,我试图找到一种在AWS上部署整个系统的方法。 据我所知,有两种方法可以实现事件驱动架构: 使用AWS运动数据流 因此,我的基本策略是将每个命令转换为存储在DynamoDB中的事件,并利用DynamoDB流将新事件通知其他微服务。但是怎么做?我应该使用前两种解决方案中的哪一种? 第一个具有以下优点: 消息排序 但缺点很成问题: 没有内置自动缩放(可以使用触发器实现)

  • 问题内容: 我正在使用与鼠标移动事件一起操作的YUI滑块。我想让它响应touchmove事件(iPhone和Android)。发生touchmove事件时如何产生鼠标移动事件?我希望仅在顶部添加一些脚本,即可将touchmove事件映射到鼠标移动事件,而无需使用滑块进行任何更改。 问题答案: 我确定这是您想要的: 我已经捕获了触摸事件,然后手动触发了自己的鼠标事件以进行匹配。尽管该代码并不是特别通

  • 我在我的应用程序中实现了事件源和CQRS模式。我从下载示例代码的CQRS旅程中获得灵感。在那里,我找到了事件源的整个基础设施(命令处理程序、事件处理程序、事件、信封…等等),但它是相当大的代码量,我无法想象我需要所有的代码来进行简单的事件源。 你知道一些常见的测试库/nuget包/项目包含所有的基础设施发送/注册命令,事件和我在事件源模式中需要的一切吗?还是要我自己去实现?

  • 问题内容: 好的,所以基本上我想在页面上放置一些JavaScript,以某种方式附加某种全局事件侦听器,该侦听器可以在发出ajax请求时检测并执行某些操作(而无需从调用中直接调用),而不管ajax如何打电话了。 我想出了如何使用jquery-如果ajax请求是 由 jquery 完成 的 。这是一个示例代码: 使用此代码,无论我在哪里/如何调用$ .post(..),全局事件监听器都会触发。如果我

  • 主要内容:一、HTML 事件,二、常见的HTML事件,三、JavaScript 可以做什么?HTML 事件是发生在 HTML 元素上的事情。 当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。 一、HTML 事件 HTML 事件可以是浏览器行为,也可以是用户行为。 以下是 HTML 事件的实例: HTML 页面完成加载 HTML input 字段改变时 HTML 按钮被点击 通常,当事件发生时,你可以做些事情。 在事件触发时 JavaScri

  • 问题内容: 我正在尝试将html数据动态地插入到动态创建的列表中,但是当我尝试为动态创建的按钮附加onclick事件时,则不会触发该事件。解决方案将不胜感激。 JavaScript代码: }); HTML代码: 问题答案: 这是由于您的元素是动态创建的。您应该使用事件委托来处理事件。 jQuery使它更容易: