jQuery实现div展开收缩为什么toggle只能触发1次?
$("#more").toggle(function(){//$(this).replaceWith('<ahref="#"id="more">OFF</a>');$("...
$("#more").toggle(function(){
//$(this).replaceWith('<a href="#" id="more">OFF</a>');
$("#moresearch").css("display","none");
},
function(){
//$(this).replaceWith('<a href="#" id="more">ON</a>');
$("#moresearch").css("display","block");
});
{中间省略}
<body>展开:<a href="#" id="more">ON</a>
<div id="moresearch" style="display:none">{中间省略}</div>
我不明白为什么这样的程序可以,但是把屏蔽的两句加上后就只能实现第一次展开,之后的点击都无法触发toggle了呢?
上面js控制div展开的none和block写反了,不过这不是重点... 展开
//$(this).replaceWith('<a href="#" id="more">OFF</a>');
$("#moresearch").css("display","none");
},
function(){
//$(this).replaceWith('<a href="#" id="more">ON</a>');
$("#moresearch").css("display","block");
});
{中间省略}
<body>展开:<a href="#" id="more">ON</a>
<div id="moresearch" style="display:none">{中间省略}</div>
我不明白为什么这样的程序可以,但是把屏蔽的两句加上后就只能实现第一次展开,之后的点击都无法触发toggle了呢?
上面js控制div展开的none和block写反了,不过这不是重点... 展开
1个回答
展开全部
兄弟,你用.replaceWith('<a href="#" id="more">ON</a>') 这个方法
新创建的内容中的id="more"在函数外是引用不到的,所以这样不行。
按你的需求是为了改变文本,那为什么不这样写呢?
--------------------------------------------------------------------
<script>
$(function(){
$("#more").toggle(function(){
$(this).text("ON");
$("#moresearch").css("display","none");
},
function(){
$(this).text("OFF");
$("#moresearch").css("display","block");
});
})
</script>
新创建的内容中的id="more"在函数外是引用不到的,所以这样不行。
按你的需求是为了改变文本,那为什么不这样写呢?
--------------------------------------------------------------------
<script>
$(function(){
$("#more").toggle(function(){
$(this).text("ON");
$("#moresearch").css("display","none");
},
function(){
$(this).text("OFF");
$("#moresearch").css("display","block");
});
})
</script>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询