日期:2014-05-16  浏览次数:20402 次

请问为什么Jquery中的toggle()执行起来有问题?
在我点击之后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>


------解决方案--------------------
$().display='none'
1.jQuery取display需要使用jQuery.css('display');
2.逻辑判断需要使用===或==,你的写法等于是给某jQuery对象添加了一个属性,名为"display"值为"none",然后再检查这个jQuery对象的display,于是永远为真,else语句永远不会执行。
JScript code
$("#ShowHideEmbeded").bind("click", function () {
    $("#TextAreaLinkCode").toggle();
    if ($("#TextAreaLinkCode").css("display")=== "none") {
        $("#ShowHideEmbeded").html("Show Embeded Code");
    } else {
        $("#ShowHideEmbeded").html("Hide Embeded Code");
    }
});

------解决方案--------------------
顶楼上!
JScript code

 $("#ShowHideEmbeded").bind("click", function () {
  $("#TextAreaLinkCode").toggle();
  if ($("#TextAreaLinkCode").display == "none") { //这个地方应该两个等号,如果判断0,null应该用3个等号
  $("#ShowHideEmbeded").html("Show Embeded Code");
  } else {
  $("#ShowHideEmbeded").html("Hide Embeded Code");
  }
  });