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写反了,不过这不是重点...
展开
 我来答
xnlpktg
2010-12-21 · TA获得超过388个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:207万
展开全部
兄弟,你用.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>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式