关于JS修改a标签的onclick方法后修改的JS方法不能使用的问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JS修改a标签的onclick方法后修改的JS方法不能使用的问题?相关的知识,希望对你有一定的参考价值。
本人小白,想问下为什么不行,是本来就这样的问题吗?
<a style="cursor:hand" onclick="onTest(this);">按钮</a>
JS原码用的JQUERY
function onTest(obj)
$(obj).attr("onclick","test('123');");
function test(id)
alert(id);
点击按钮后,onclick方法改变成test('123')了,但是再点击不能调用test方法。。不能alert。。
弱弱的求解。。
不好意思。。忘说是用IE8了。。
需要是js'方法有效,这样的话,a标签的超链接就不可以被触发,因此有两种解决方法。
href="javascript:void()"这样的话,a的超链接就成为了没有作用的空值。
在js方法内部返回一个false值,这样a在被点击的时候方法被触动,接着执行完后返回false给a表示超链接不被启用。
第二种方法好一些,因为可以平稳退化。
给你个例子吧
<a href="javascript: void(0);" id="demo">按钮</a>$(document).ready(funciton()$('#demo').bind('click', evenClick);//第一次点击执行evenClick方法
);
function evenClick()
//你可以在这里做你想做的事情,比如alert(1);
alert(1);
$(this).unbind('click').bind('click', oddClick);//重新绑定click事件
function oddClick()
//第二次点击的时候你要做什么就写这里,比如alert(2);
alert(2);
$(this).unbind('click').bind('click', evenClick);//重新绑定click事件
以上代码没测试,但是应该是点击按钮的时候先弹出1,然后弹出2,再弹出1...
参考技术C $(obj).attr("onclick","test('123');");改成
$(obj).attr("onclick",function()
test('123');
);追问
可以不直接运行test吗
追答你点击了按钮以后,obj就拥有了click事件,这个时候,你再点击Obj 对象时,就会触发这个事件。
你描述一下,我看看你打算实现的功能
是这样的,我是想点击一个A标签,然后运行TESTA方法,把一个图片隐藏了,并改变A标签的方法,这样再点击,就会变成TESTB方法,作用是把图片再显示出来。。
追答$(obj).click(function ()
$(imgObj).toggle();
);
这样不就可以了吗
不好意思。。忘说是用IE8了。。
追答firefox、chrome、ie6都没事....
第5个回答 2013-05-28 反正我这里是没问题的 可能是你的哪个地方出现问题了 请你发完整的html 或者删掉无关代码再检查以上是关于关于JS修改a标签的onclick方法后修改的JS方法不能使用的问题?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScripta标签onclick传递参数不对,A标签调用js函数写法总结