0

Wicket AjaxSubmitLink onSubmit 在应用改变页面 DOM 的 appendJavascript 后不会被调用。示例代码是:

add(new ListView("list", someArrayList){
            @Override
            protected void populateItem(final ListItem item) {
                add(new AjaxSubmitLink("link") {
                     @Override
                     public void onClick(AjaxRequestTarget target) {
                         target.appendJavascript("swap('"+this.getMarkupId()+"')");
                     });
})

JavaScript 看起来像:

function swap(markupId){
    var one = $('.dashed').first().parent();
    var two = $('#'+markupId).parent();
    var tone = one.clone();
    var ttwo = two.clone();
    one.replaceWith(ttwo);
    two.replaceWith(tone);
}

有什么建议么?

4

1 回答 1

2

可能是导致问题的clone()方法。根据文档,它不会克隆事件处理程序。尝试clone(true);

您还可以处理交换服务器端,然后在交换后重新呈现列表。这就是 Wicket 的做法。

于 2014-05-27T08:09:54.863 回答