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);
我来自:向东博客