Wicket中JQuery事件绑定失效的解决

这是第二次与Wicket的不期而遇了,虽然上次项目的时间很短,但是还是喜欢上这个Java的轻量级的系统框架。业务代码和前台表示的完全分离这是我欣赏他的原因,把复杂的事情简单化这一直是我所追求的做事方式,所以我和Wicket可以说是相见恨晚....O(∩_∩)O哈哈~

而JQuery则是个优秀的JS工具包,它替程序员完成了大量的重复工作,是一些复杂的而常用方法系统化、函数化。Wicket和JQuery的结合可谓是天作之合!


言归正传~~~~

Wicket和JQuery的结合是好事,但是两者貌似有些不调好,这可能是实现机制的不同,这可能说的不正确,应该说对技术的了解不够深入,你初次接触会发现,通过JQuery绑定的控件事件会失效。

而我最终发现其原因在于我没有遵循Wicket的框架的编码原则,Wicket对于我这样的程序员就给予了惩罚,你不遵守我就不理你...(⊙o⊙)…

Wicket:如果你要用JQuery一定要通知它,就是通过Wicket将绑定事件进行注册,这样你就可以后顾无忧的使用Jquery和javascript代码了...

 HTML代码

 1     <form wicket:id="frm" id="frm" >
 2         <Div wicket:id="divMsg" id="divMsg"></Div>
 3 
 4         <Label wicket:id="pageTitle" id="pageTitle">null</Label><br/><br/><br/>
 5         <select wicket:id="zList" id="zList" style="width:200px"></select><br/>
 6         input<br/><input type="text" wicket:id="inputTxt" id="inputTxt" style="width:200px"/><br/>
 7         <input type="checkbox" wicket:id="chk001" id="chk001" />Checkbox<br/>
 8         <input type="button" wicket:id="but001" value="Clear" id="but001" />
 9         <input type="button" wicket:id="but002" value="JQuery" id="but002" />
10         <input type="button" wicket:id="but003" value="MSG" id="but003" />
11         <br/>
12 
13 
14     </form>

 JS

function myclear(){
    //$("#inputTxt").attr("value","");
    $("#inputTxt").val("");
    $("#inputTxt").css({color:'#ff0011',background:'white'});
    $("#divMsg").html("");
    $("#chk001").attr("checked",false);
}

 

JAVA代码

 1 but001.add(new AjaxFormComponentUpdatingBehavior("onclick") {
 2     private static final long serialVersionUID = 1L;
 3 
 4     @Override
 5     protected void onUpdate(AjaxRequestTarget target) {
 6 
 7         target.appendJavaScript("myclear();");
 8         }
 9     });
10 _frm.add(but001);
posted @ 2012-11-29 18:39 meil 阅读(...) 评论(...) 编辑 收藏