请问为什么Jquery中的toggle()执行起来有问题?

mycwcgr123 2012-02-23 09:25:36
在我点击之后div是交替隐藏和显示,但$("#ShowHideEmbeded").html("Hide Embeded Code");似乎从来没有执行
此外是不是应该用$("#ShowHideEmbeded").text("Hide Embeded Code")更改DIV中的内容


$("#ShowHideEmbeded").bind("click", function () {
$("#TextAreaLinkCode").toggle();
if ($("#TextAreaLinkCode").display = "none") {
$("#ShowHideEmbeded").html("Show Embeded Code");
} else {
$("#ShowHideEmbeded").html("Hide Embeded Code");
}
});

<div id="ShowHideEmbeded" style="cursor: pointer;">Show Embeded Code</div>
...全文
115 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
马明亮 2012-02-23
  • 打赏
  • 举报
回复
<script type="text/javascript" src="/nms/Common/Scripts/jquery.js"></script>
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
$(document).ready(function(){

$("#ShowHideEmbeded").bind("click", function () {
$("#TextAreaLinkCode").toggle();
if ($("#TextAreaLinkCode").css("display") == "none") {
$("#ShowHideEmbeded").html("Show Embeded Code");
} else {
$("#ShowHideEmbeded").html("Hide Embeded Code");
}
});
});
</script>
</head>

<body>
<div id="ShowHideEmbeded" style="cursor: pointer;">Show Embeded Code</div>
<div id="TextAreaLinkCode" style="background-color:yellow;width:100;height:200"></div>
</body>
</html>
jusfr 2012-02-23
  • 打赏
  • 举报
回复
当然有区别,声明一个<p></p>,然后
$("p").html("<b>bbb</b>"),段落里是粗体"bbb",因为<b>被浏览器当作节点渲染出来了;
$("p").text("<b>bbb</b>"),段落里是普通的"<b>bbb</b>",它们被当作文本结点,即等于<bgt;bbb</b>
mycwcgr123 2012-02-23
  • 打赏
  • 举报
回复
.html()和.text()似乎都能正常工作,在这里有区别吗?谢谢
jusfr 2012-02-23
  • 打赏
  • 举报
回复
html().text() 是jQuery对象的文档操作方法,innerHTML是dom对象操作方法,不要混淆,不过jQuery对象与DOM可互相转化。
mycwcgr123 2012-02-23
  • 打赏
  • 举报
回复
谢谢!
请问改变DIV的文本是$("#ShowHideEmbeded").html("Show Embeded Code");还是$("#ShowHideEmbeded").innerhtml("Show Embeded Code");或者$("#ShowHideEmbeded").text("Show Embeded Code");


hellNo 2012-02-23
  • 打赏
  • 举报
回复
顶楼上!

$("#ShowHideEmbeded").bind("click", function () {
$("#TextAreaLinkCode").toggle();
if ($("#TextAreaLinkCode").display == "none") { //这个地方应该两个等号,如果判断0,null应该用3个等号
$("#ShowHideEmbeded").html("Show Embeded Code");
} else {
$("#ShowHideEmbeded").html("Hide Embeded Code");
}
});
jusfr 2012-02-23
  • 打赏
  • 举报
回复
$().display='none'
1.jQuery取display需要使用jQuery.css('display');
2.逻辑判断需要使用===或==,你的写法等于是给某jQuery对象添加了一个属性,名为"display"值为"none",然后再检查这个jQuery对象的display,于是永远为真,else语句永远不会执行。
$("#ShowHideEmbeded").bind("click", function () {
$("#TextAreaLinkCode").toggle();
if ($("#TextAreaLinkCode").css("display")=== "none") {
$("#ShowHideEmbeded").html("Show Embeded Code");
} else {
$("#ShowHideEmbeded").html("Hide Embeded Code");
}
});


87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧