zoukankan      html  css  js  c++  java
  • 巧妙使用Jquery 改变元素的 onclick 事件

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

    Html代码  收藏代码
    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); });

    Js代码  收藏代码
    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. }  
  • 相关阅读:
    Delphi TListView刷新闪烁问题
    GO语言下载、安装、配置
    理解领域模型Domain Model
    Competing Consumers Pattern (竞争消费者模式)
    Compensating Transaction Pattern(事务修正模式)
    一致性hash算法简介
    CQRS, Task Based UIs, Event Sourcing agh!
    Circuit Breaker Pattern(断路器模式)
    Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications 云设计模式:云应用的规范架构指导
    Cache-Aside Pattern(缓存模式)
  • 原文地址:https://www.cnblogs.com/ranzige/p/3764850.html
Copyright © 2011-2022 走看看