首页 > 代码库 > 巧妙使用Jquery 改变元素的 onclick 事件
巧妙使用Jquery 改变元素的 onclick 事件
需要点击图片将套组发布, 页面代码:
Html代码
- <img width="20px" src="
- <s:property value="IMAGES_PATH" /><s:if test=‘%{releaseStatus == "YES"}‘>pubed.png</s:if>
- <s:else>nopub.png</s:else>"
- onclick="<s:if test=‘%{releaseStatus == "YES"}‘>changeToClose(<s:property value="http://www.mamicode.com/suiteId" />, $(this));</s:if>
- <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代码
- function changeToOpen(suitId, img){
- //这里借助 train_com ac_type 来实现传递锁信息
- params = "train_com="+suitId+"&ac_type=yes";//alert(params);
- $.post("doSimulatorPubById.do",params,function(data){
- eval("var rst = "+data);
- alert(rst.msg);
- if(rst.status == 3){
- img.attr("src","<s:property value="http://www.mamicode.com/IMAGES_PATH" />pubed.png");
- img.attr(‘onclick‘, ‘‘).unbind(‘click‘).click( function () { changeToClose(suitId, img); });
- }
- });
- }
- function changeToClose(suitId, img){
- //这里借助 pilotInfForVoteDto 来实现传递锁信息
- params = "train_com="+suitId+"&ac_type=no";//alert(params);
- $.post("doSimulatorPubById.do",params,function(data){
- eval("var rst = "+data);
- alert(rst.msg);
- if(rst.status == 3){
- img.attr("src","<s:property value="http://www.mamicode.com/IMAGES_PATH" />nopub.png");
- img.attr(‘onclick‘, ‘‘).unbind(‘click‘).click( function () { changeToOpen(suitId, img); });
- }
- });
- }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。