巧妙使用Jquery 改变元素的 onclick 事件

需要点击图片将套组发布, 页面代码:

  1. <img width="20px" src="
  2. <s:property value="IMAGES_PATH" /><s:if test='%{releaseStatus == "YES"}'>pubed.png</s:if>
  3. <s:else>nopub.png</s:else>"
  4. onclick="<s:if test='%{releaseStatus == "YES"}'>changeToClose(<s:property value="suiteId" />, $(this));</s:if>
  5. <s:else>changeToOpen(<s:property value="suiteId" />, $(this));</s:else>" />

在套组发布之后, 需要改变下次点击的事件调用的方法。

使用:img.click( function () { changeToOpen(suitId, img); });

结果:先执行img所定义的 onclick 事件定义的方法, 然后执行之前 onclick 所绑定的方法, 最后执行这次绑定的方法。

找到解除绑定的代码:unbind('click')

img.unbind('click').click( function () { changeToOpen(suitId, img); });

结果:先执行img所定义的 onclick 事件定义的方法, 然后执行这次绑定的方法。

 找到解除 onclick  绑定的代码: 

img.attr('onclick', '').unbind('click').click( function () { changeToOpen(suitId, img); });

  1. function changeToOpen(suitId, img){
  2. //这里借助 train_com ac_type 来实现传递锁信息
  3. params = "train_com="+suitId+"&ac_type=yes";//alert(params);
  4. $.post("doSimulatorPubById.do",params,function(data){
  5. eval("var rst = "+data);
  6. alert(rst.msg);
  7. if(rst.status == 3){
  8. img.attr("src","<s:property value="IMAGES_PATH" />pubed.png");
  9. img.attr('onclick', '').unbind('click').click( function () { changeToClose(suitId, img); });
  10. }
  11. });
  12. }
  13. function changeToClose(suitId, img){
  14. //这里借助 pilotInfForVoteDto 来实现传递锁信息
  15. params = "train_com="+suitId+"&ac_type=no";//alert(params);
  16. $.post("doSimulatorPubById.do",params,function(data){
  17. eval("var rst = "+data);
  18. alert(rst.msg);
  19. if(rst.status == 3){
  20. img.attr("src","<s:property value="IMAGES_PATH" />nopub.png");
  21. img.attr('onclick', '').unbind('click').click( function () { changeToOpen(suitId, img); });
  22. }
  23. });
  24. }
上一篇:CSS居中方法


下一篇:android 开发 socket发送会有部分乱码,串码,伴随着数据接收不完整