<div onclick="show(this,'1')";>show</div><script type="text/javascript">
function show(obj,val){
$(obj).attr("onclick",test());
}
function test(){
alert("000000");
}
</script>
想实现的效果是:当点击事件发生后,更换该点击处函数为另一个函数,待下次点击时使用!我用jQuery这个方法,$(obj).attr("onclick",test()); 每次一点击每次都执行更换后的函数,请问怎么处理!!!
function show(obj,val){
$(obj).attr("onclick",test());
}
function test(){
alert("000000");
}
</script>
想实现的效果是:当点击事件发生后,更换该点击处函数为另一个函数,待下次点击时使用!我用jQuery这个方法,$(obj).attr("onclick",test()); 每次一点击每次都执行更换后的函数,请问怎么处理!!!
$(obj).attr("onclick",test());
改成
$(obj).unbind("click");
$(obj).bind("click",function(){
test();
});
<div id="test">show</div>
或者用toggle();
$("#test").toggle(function(){
$(this).html("hide");
},function(){
$(this).html("show");
});
例:
var temp = false;
$(obj).click(function(){
if(temp == false){
//执行第一次要执行的函数
temp == false
}else{
test();
}
});
var temp = false;
$(obj).click(function(){
if(temp == false){
//执行第一次要执行的函数
temp == true;
}else{
test();
}
});
这里是要把函数句柄放进去:test但是你直接调用了test()函数,所以就执行了一遍
$(obj).attr("onclick",test());
改成
$(obj).unbind("click");
$(obj).bind("click",function(){
test();
});
为什么 老是一次性都执行了呢?
什么一次性都自执行了?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="http://www.w3school.com.cn/jquery/jquery.js"></script>
</head>
<body>
<div>
<div>test test test test test test</div>
<div style="margin-left:500px;" onclick="test0(this,'cs')";>Test</div>
</div>
<script type="text/javascript">
function test0(obj,val){
alert("000000000");
//$(obj).attr("onclick",test1(obj,val));
$(obj).unbind("click");
$(obj).bind("click",function(){test1(obj,val);});
}
function test1(obj,val){
alert("111111111");
//$(obj).attr("onclick",test2(obj,val));
$(obj).unbind("click");
$(obj).bind("click",function(){test2(obj,val);});
}
function test2(obj,val){
alert("222222222");
//$(obj).attr("onclick",test0(obj,val));
$(obj).unbind("click");
$(obj).bind("click",function(){test0(obj,val);});
}
</script>
</body>
</html>
这是源代码 大家测试下??
$(obj).attr("onclick","test1("+$(obj)+","+val+");");//这块有点问题
alert("000000000");
$(obj).removeAttr("onclick");
$(obj).attr("onclick","test1(this,'"+val+"');");